我知道OR (||)
可以多次使用,但是是否有较短的代码?当我使用IN
时,
它没有给出正确的答案。
答案 0 :(得分:2)
您可以将LEFT
与IN
配合使用以下解决方案:
SELECT *
FROM books
WHERE LEFT(author_lname, 1) IN ('a', 'b', 'c', 'f')
要检查不区分大小写,可以使用以下命令,并使用LOWER
:
SELECT *
FROM books
WHERE LOWER(LEFT(author_lname, 1)) IN ('a', 'b', 'c', 'f')
您也可以使用FIND_IN_SET
:
SELECT *
FROM books
WHERE FIND_IN_SET(LOWER(LEFT(author_lname, 1)), 'a,b,c,f') > 0
答案 1 :(得分:2)
您可以将正则表达式与RLIKE一起使用
SELECT * FROM books WHERE author_lname RLIKE '^[a-f]';
答案 2 :(得分:2)
您可以使用正则表达式来匹配第一个字符。只需将名称开头要匹配的字符添加到[]
内的字符集中即可:
SELECT * FROM books WHERE author_lname REGEXP '^[abcf]'
答案 3 :(得分:1)
有很多方法可以得到想要的结果,其中之一就是这样:
SELECT * FROM tablename WHERE 'abcf' LIKE CONCAT('%', LEFT(mycolumn, 1), '%')