如何在查询中限制`like`运算符以从某事开始

时间:2014-02-03 11:06:31

标签: mysql

我想写一个标题以A或B开头的查询

这是正确的吗? 我不想使用OR

我想在mysql中使用它,

    select * from table where title like `[AB]%`

5 个答案:

答案 0 :(得分:3)

使用REGEXP代替LIKE

SELECT * FROM table
WHERE title REGEXP '^[AB]'

DEMO

或者只使用子字符串:

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表达式周围添加括号是一种好习惯。