select where like A%没有结果,但%A做php


select where like A% gives no results but %A does php

我的表总共有40000行,其中至少有2000多行以字母A开头。

现在我的SELECT查询返回一些结果当我使用

$selectGames = mysql_query("SELECT * FROM Games WHERE GameName LIKE '%A'");

但是当我使用:

$selectGames = mysql_query("SELECT * FROM Games WHERE GameName LIKE 'A%'");

总共返回0行。为什么呢?

%A表示"字符串末尾为字母A的地方"。A%是与"以字母a开头的字符串"相反的

       %A   A%
APPLE  N    Y
ABBA   Y    Y
GOUDA  Y    N

它们是完全不同的匹配,所以你的两个查询是不相等的。

同样,确保表的排序规则设置为不区分大小写的匹配。如果它是区分大小写的,那么aA将被区别对待。

edit:也一样,记住空格很重要:

mysql> select 'gouda ' like '%a';
                    ^---note the space here
+--------------------+
| 'gouda ' like '%a' |
+--------------------+
|                  0 |
+--------------------+
1 row in set (0.00 sec)