Jam*_*s T 3 mysql sql select where
我如何使用IN表?所以我可以在其中使用%?在我的意思是:
SELECT fields
FROM table
WHERE age = "50"
AND name IN ("tim", "bob", "nancy", "john");
Run Code Online (Sandbox Code Playgroud)
我已经尝试过:
SELECT fields
FROM table
WHERE age = "50"
AND name LIKE ("2010-09-17%", "2010-09-16%")
Run Code Online (Sandbox Code Playgroud)
但它给出了错误"操作数应包含1列"
您可以使用多个LIKE表达式:
SELECT fields
FROM table
WHERE age = "50"
AND (
name LIKE "2010-09-17%"
OR name LIKE "2010-09-16%"
);
Run Code Online (Sandbox Code Playgroud)
或者你可以使用正则表达式:
SELECT fields
FROM table
WHERE age = "50"
AND name REGEXP "2010-09-17.*|2010-09-16.*";
Run Code Online (Sandbox Code Playgroud)
或者,巧妙地
SELECT fields
FROM table
WHERE age = "50"
AND name REGEXP "2010-09-1(6|7).*";
Run Code Online (Sandbox Code Playgroud)
没有LIKE和IN子句的组合.它是一种语法或另一种语法:
SELECT fields
FROM table
WHERE age = 50
AND ( name IN ('tim', 'bob', 'nancy', 'john')
OR name LIKE '2010-09-17%'
OR name LIKE '2010-09-16%')
Run Code Online (Sandbox Code Playgroud)
搜索文本时要考虑的另一种方法是全文搜索(FTS):
SELECT fields
FROM table
WHERE age = 50
AND MATCH(name) AGAINST('tim bob nancy john')
Run Code Online (Sandbox Code Playgroud)
...但这需要MyISAM表和全文索引.