有人知道为什么这个查询返回零结果吗?它应该会返回大约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 ver工作。4.7.7MySQL5.6.41-84.1版本的SQL查询框。
最佳答案
您可能没有任何值从description
开始的Christma
字段。LIKE 'Christma%'
和LIKE 'Christma_'
期望值从Christma
开始,且右侧有一个或多个字符。Christma
的左侧不应该有字符(甚至没有空白字符)。还要注意,_
通配符只需要一个字符。
对于eg,ifdescription
列具有Christmas Carol
值。LIKE 'Christma%'
将匹配该值;而LIKE 'Christma_'
将不匹配,因为它只希望在Christma
之后有一个字符。LIKE '%Christma%'
需要Christma
两边有零个或多个字符才能匹配。
从Docs:
SQL模式匹配使您能够使用_
来匹配任何单个
字符和%
匹配任意数量的字符(包括
零字符)。在MySQL中,SQL模式不区分大小写
违约。