MySQL IN 和 LIKE

2021-12-19 00:00:00 sql select where mysql

我将如何使用带有 like 的 IN 表?这样我就可以在其中使用 % 了吗?我的意思是:

How would I use a IN table with like? So that I could use % in them? By in I mean:

SELECT fields 
  FROM table 
 WHERE age = "50" 
   AND name IN ("tim", "bob", "nancy", "john");

我已经试过了:

SELECT fields 
  FROM table 
 WHERE age = "50" 
   AND name LIKE ("2010-09-17%", "2010-09-16%")

但它给出了错误操作数应该包含 1 列"

But it gave the error "Operand should contain 1 column(s)"

推荐答案

您可以使用多个 LIKE 表达式:

You can use a number of LIKE expressions:

SELECT fields 
  FROM table 
  WHERE age = "50" 
        AND (
             name LIKE "2010-09-17%" 
             OR name LIKE "2010-09-16%"
            );

或者你可以使用正则表达式:

or you can use a regex:

SELECT fields 
  FROM table 
 WHERE age = "50" 
       AND name REGEXP "2010-09-17.*|2010-09-16.*";

或者,巧妙地

SELECT fields 
  FROM table 
 WHERE age = "50" 
       AND name REGEXP "2010-09-1(6|7).*";

相关文章