mysql - WHERE 带有 IN 运算符但开始于而不是完全匹配

标签 mysql sql

我有一个带 table 的箱子。

[ I D  ]  [ n a m e ] [ 2 ID]
310000    Kikiriki    100001
310010    Mandalina   100002
210000    Keyboard    200001
310020    Maouse      100003
012001    PC          NULL

使用 SELECT * FROM Table WHERE [2 ID] IN ('310000','012001') 我只得到 310000 和 012001 的结果。我需要所有以 310% 开头的 ID 的结果或 012%。

AND Mat_FinDok_KontoPr2 like '310%'
AND Mat_FinDok_KontoPr2 like '012%'
AND Mat_FinDok_Dobavuvac LIKE '%'
AND Mat_FinDok_TipDok LIKE '000005%'
AND Mat_FinDok_DataDok BETWEEN '2014-01-01' AND '2014-12-31'

Result 0 Rows

还有这个

AND mat_findok.Mat_FinDok_KontoPr2 IN ('310000', '012001')
AND mat_findok.Mat_FinDok_Dobavuvac LIKE '%'
AND Mat_FinDok_Dobavuvac LIKE '%'
AND Mat_FinDok_TipDok LIKE '000005%'
AND Mat_FinDok_DataDok BETWEEN '2014-01-01' AND '2014-12-31'

Result 11 Rows

但是这里我没有来自 012002 的结果。

最佳答案

使用 LIKE% 通配符:

SELECT * FROM MyTable WHERE Id LIKE '310%' OR Id LIKE '012%'

T-SQL Documentation

MySQL Documentation

关于mysql - WHERE 带有 IN 运算符但开始于而不是完全匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22738357/

相关文章:

php - 从具有重复值的 MySQL 在 PHP 中创建关联数组

php - 如何通过ssh远程运行MySQL脚本文件?

sql - 在 WHERE 子句中使用别名

mysql - 如何使用group by拥有父子字段

mysql - mysql在添加具有默认值的新列时是否锁定表以进行写入

php - sql没有插入数据库

php - 具有复合主键的 Yii 模型

php - 如何将数字格式化为只有两位小数?

sql - MySQL:优化大表中多行的更新

sql - 递归 SQL 给出 ORA-01790