有人知道为什么这个查询返回零结果吗?它应该返回大约93个结果。
SELECT ps_stock_available.id_product FROM ps_stock_available
LEFT JOIN ps_product_lang ON ps_stock_available.id_product = ps_product_lang.id_product
WHERE description LIKE 'Christma_';
此查询还返回无结果:
SELECT ps_stock_available.id_product FROM ps_stock_available
LEFT JOIN ps_product_lang ON ps_stock_available.id_product = ps_product_lang.id_product
WHERE description LIKE 'Christma%';
此查询返回 93个结果:
SELECT ps_stock_available.id_product FROM ps_stock_available
LEFT JOIN ps_product_lang ON ps_stock_available.id_product = ps_product_lang.id_product
WHERE description LIKE '%Christma%';
我正在使用phpMyAdmin版本。 MySQL版本5.6.41-84.1的4.7.7 SQL查询框。
答案 0 :(得分:1)
您可能没有任何description
开头的Christma
字段。
LIKE 'Christma%'
和LIKE 'Christma_'
期望值从Christma
开始,并在其右侧有一个或多个字符。 Christma
的左侧应该没有字符(甚至没有空格字符)。另外请注意,_
通配符只需要一个字符。
例如,如果description
列的值为Christmas Carol
。 LIKE 'Christma%'
将与值匹配;而LIKE 'Christma_'
不会,因为它只希望在Christma
之后一个字符。
LIKE '%Christma%'
期望Christma
的两边有零个或多个字符,以便能够匹配。
来自Docs:
SQL模式匹配使您可以使用
_
来匹配任何单个 字符和%
以匹配任意数量的字符(包括 零个字符)。在MySQL中,SQL模式不区分大小写 默认。