在mySQL中查询多个“starts with”值

juud5qan  于 2023-10-15  发布在  Mysql
关注(0)|答案(4)|浏览(126)

我试图查询一个以'a','b'或'c'开头的表中的值。我知道在MS SQL中你可以做一个[charlist]来做到这一点:
(LIKE '[abc]%')
我想知道在其他数据库(如Oracle或mySQL)中正确的语法是什么。
谢谢

w6lpcovy

w6lpcovy1#

在MySQL中,可以使用正则表达式

where some_column REGEXP '[abc].*'
7ivaypg9

7ivaypg92#

MySQL遵循相同的语法。用%来表示,还是?单个字符:

SELECT * FROM `table` WHERE `column` LIKE 'a%' OR `column` LIKE 'b%'...

或者,您可以在MySQL中使用REGEXP,但它会导致性能下降,因为您无法使用索引来查询数据。
对于SELECT LIKE 'a%'查询,它将能够使用索引查找以A开头的所有项,并高效地返回它们。使用REGEXP将导致对每个项目进行行扫描,性能将受到很大影响。

new9mtju

new9mtju3#

你可以使用regex:
WHERE column REGEXP '^[abc].*'

vnzz0bqm

vnzz0bqm4#

**在Oracle中,**您可以使用LIKE运算符来匹配模式。它的语法类似于MySql:

WHERE column_name LIKE 'a%' OR column_name LIKE 'b%' OR column_name LIKE 'c%'

可以在Oracle中使用正则表达式(REGEXP_LIKE)函数。

WHERE REGEXP_LIKE(your_column_name, '^[abc]')

相关问题