Mysql 为什么';这样的查询不会返回任何结果吗?
我做了一张2015年从W3schools复制的表格。。。以下是一些数据: 这里我使用的列和数据类型如下Mysql 为什么';这样的查询不会返回任何结果吗?,mysql,Mysql,我做了一张2015年从W3schools复制的表格。。。以下是一些数据: 这里我使用的列和数据类型如下 CustomerID = int CustomerName = varchar ContactName = varchar Address = varchar City = varchar PostalCode = varchar Country = text 当我使用下面的查询时,我得到了实际的结果 SELECT * FROM Customers WHERE Country LIKE '
CustomerID = int
CustomerName = varchar
ContactName = varchar
Address = varchar
City = varchar
PostalCode = varchar
Country = text
当我使用下面的查询时,我得到了实际的结果
SELECT * FROM Customers WHERE Country LIKE 'U%'; SELECT * FROM Customers WHERE Country LIKE 'M%'; SELECT * FROM Customers WHERE Country LIKE 'G%';
SELECT * FROM Customers WHERE Country LIKE 's%';
现在的问题是,当我使用下面的查询时,我没有得到实际的结果
SELECT * FROM Customers WHERE Country LIKE 'U%'; SELECT * FROM Customers WHERE Country LIKE 'M%'; SELECT * FROM Customers WHERE Country LIKE 'G%';
SELECT * FROM Customers WHERE Country LIKE 's%';
我没有看到任何争吵!!
但我们应该看到以下结果
为什么??有人能解释一下吗
而且我完全处于新手阶段
提前感谢请参见,
这是因为你的国家专栏以“S”开头(我们认为)并不是真正以“S”开头,可能是因为它的第一个宪章是一个空格。(只是猜测)
因此,对于这种情况,您可以尝试一次
SELECT * FROM Customers WHERE rtrim(ltrim(Country)) LIKE 's%';
或
区分大小写在表中可能是一件很微妙的事情:查看排序规则和字符集。也就是说,运行
SHOW CREATE TABLE Customers
,看看您得到了什么。看起来您使用的是二进制(区分大小写)排序规则。我的国家/地区列排序规则是latin1_swedish_cisorry…国家/地区列数据类型是tinytext,charter set=latin1是thismysql
或sql server
或ms access
,您为此列出了所有3个标记。。它将是mysql