早上好,在varchar字段中查找记录的查询有点问题。
我的表由两个字段组成:codice和giacenza,其中codice是varchar字段类型。
我需要找到所有的记录都以一个数字开头。
我试过的问题是:

SELECT codice,giacenza FROM prodotti WHERE codice like 'AC%' OR '160%'

而这个:
SELECT codice,giacenza FROM prodotti WHERE codice like 'AC%' OR '160_'

但把所有的记录都还给了我,不仅是AC和160开头的那一排。如果删除或“160%”或或“160”,查询将返回正确的记录:只有以AC开头的行。
我读过一篇关于google的研究文章,你不能用通配符来表示数字。对吗?
有办法解决我的问题吗?
提前谢谢。

最佳答案

你的问题是

SELECT codice,giacenza FROM prodotti WHERE codice like 'AC%' OR '160%'

处理后,代码将被视为
        ( codice like 'AC%') // codition 1  which will True or false
      OR ('160%')   // condition 2 will always true
   one codition True in OR means expression true for all

这意味着('160%')对于所有行始终为true
查询应该是这样的
SELECT codice,giacenza FROM prodotti WHERE codice like 'AC%' OR  codice like  '160%'

09-28 12:37