加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – Postgres LIKE,列值为substring

发布时间:2020-12-12 06:26:23 所属栏目:MsSql教程 来源:网络整理
导读:我正在尝试编写一个WHERE语句,该语句将匹配列值是另一个字符串的子字符串的行. 例如,我可能有一个名为Edward Sharpe的事件记录.我想做的事情如下: SELECT * FROM events WHERE(name LIKE 'Edward Sharpe and the Magnetic Zeroes'); 这不起作用.我也有各种各
我正在尝试编写一个WHERE语句,该语句将匹配列值是另一个字符串的子字符串的行.

例如,我可能有一个名为Edward Sharpe的事件记录.我想做的事情如下:

SELECT * FROM events WHERE(name LIKE 'Edward Sharpe and the Magnetic Zeroes');

这不起作用.我也有各种各样的排列:

SELECT * FROM events WHERE('%' || name || '%' LIKE 'Edward Sharpe and the Magnetic Zeroes');

哪个也行不通.

解决方法

你的第二次尝试非常接近正确. LIKE关键字左侧是一个字符串,右侧是一个模式.两者都可以是表达式,但%只在右侧的模式中具有特殊含义.

试试这个:

SELECT * FROM events
 WHERE name LIKE '%Edward Sharpe and the Magnetic Zeroes%';

或者更确切地说:

SELECT * FROM events 
 WHERE 'Edward Sharpe and the Magnetic Zeroes' LIKE '%' || name || '%';

另请注意,默认情况下,Postgres中的所有字符串操作都区分大小写.要匹配忽略大小写的模式,请使用ILIKE代替LIKE.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读