使用LIKE语句在varchar字段中搜索编号

时间:2014-06-06 09:02:55

标签: php mysql sql sql-server

早上好,我在查询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.如果我删除了OR' 160%'或者OR' 160 _'查询返回正确的记录:只有行以AC开头。

我在谷歌研究后读过,你不能使用带有数字的通配符。这是对的吗?

有一种方法可以通过此查询解决我的问题吗?

提前致谢。

2 个答案:

答案 0 :(得分:4)

您的查询是

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%')对所有行

始终为真

查询应该是这样的

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

答案 1 :(得分:3)

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