我想写一个标题以A或B开头的查询
这是正确的吗?
我不想使用OR
我想在mysql中使用它,
select * from table where title like `[AB]%`
答案 0 :(得分:3)
使用REGEXP
代替LIKE
:
SELECT * FROM table
WHERE title REGEXP '^[AB]'
或者只使用子字符串:
SELECT * FROM table
WHERE LEFT(title, 1) IN ('A', 'B');
答案 1 :(得分:2)
你可以像
那样做select * from table where title like `A%` OR title like `B%`
另一种方法是使用正则表达式
select * from table where title REGEXP '^(A|B)';
答案 2 :(得分:0)
这是正确的方法:
SELECT * FROM table WHERE title LIKE 'A%' or title LIKE 'B%';
答案 3 :(得分:0)
你写的东西应该有效。或者你可以使用, 选择 * 来自table_name 标题类似'A%'或标题类似'B%'
答案 4 :(得分:0)
不幸的是,SQL中的LIKE
运算符仅支持有限的语法。它不支持正则表达式样式语法。
你必须把它分成两个表达式:
select * from table where (title like 'A%' or title like 'B%')
注意:
在这种情况下,括号是多余的,但由于OR
的优先级低于AND
,我认为在SQL中常规地在OR
表达式周围添加括号是一种好习惯。