IN-array内部的占位符

时间:2019-07-16 13:22:11

标签: mysql

MySQL无法处理IN数组内部的占位符。 查询总是得到空结果。 有人知道解决这个问题的方法吗?

SELECT * FROM table1 where column1 in ('abc.%', 'xyz.%');

2 个答案:

答案 0 :(得分:5)

使用LIKEOR有什么问题?

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
)