PostgreSQL LIKE命令疑问:如何筛选以S或T开头的标题?
正确筛选以S或T开头标题的SQL写法
通用写法(所有SQL数据库兼容)
直接用OR连接两个LIKE条件,这是最稳妥的方式:
SELECT * FROM 你的表名 WHERE 标题字段 LIKE 'S%' OR 标题字段 LIKE 'T%';
更简洁的正则写法(分数据库)
如果你的数据库支持正则表达式,可以用更短的语句:
- MySQL/MariaDB:
SELECT * FROM 你的表名 WHERE 标题字段 REGEXP '^[ST]';
- PostgreSQL:
SELECT * FROM 你的表名 WHERE 标题字段 ~ '^[ST]';
- SQL Server:
用LIKE的范围通配符,效果和正则类似:
SELECT * FROM 你的表名 WHERE 标题字段 LIKE '[ST]%';
你之前写法出错的原因
like 'S%' and 'T%':AND要求字段同时满足两个条件,一个标题不可能既以S又以T开头,所以永远查不到数据like ('S%','T%'):LIKE只能接受单个匹配模式,不支持传多个值的列表,语法本身就不合法like ('S% and 'T%'):字符串引号没闭合,属于语法错误,逻辑上也没实现“或”的需求
内容的提问来源于stack exchange,提问作者Paolo
相关产品推荐
相关产品推荐

