早上好,在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%'