MySQL无法处理IN数组内部的占位符。 查询总是得到空结果。 有人知道解决这个问题的方法吗?
SELECT * FROM table1 where column1 in ('abc.%', 'xyz.%');
答案 0 :(得分:5)
使用LIKE
和OR
有什么问题?
SELECT *
FROM table1
WHERE column1 LIKE 'abc.%'
OR column1 LIKE'xyz.%';
答案 1 :(得分:0)
您可以使用由通配符值组成的临时表:
CREATE TEMPORARY TABLE arr(item VARCHAR(100));
INSERT INTO arr VALUES ('abc.%'), ('xyz.%'), /* 2k items */;
并使用一个存在的查询:
SELECT *
FROM tbl
WHERE EXISTS (
SELECT 1
FROM arr
WHERE tbl.col LIKE arr.item
)