MySQL LIKE 语句在除字符串开头之外的任何位置查找子字符串

发布于 2024-08-15 02:23:28 字数 173 浏览 2 评论 0原文

我有一个 SQL 查询SELECT * FROM table WHERE column LIKE '%pdd%'

问题是我需要获取所有结果,不包括以“pdd”开头的结果,我的意思是找到“pdd”不开头的所有结果。怎么可能呢?

当“pdd”不在列的开头时,我确实需要匹配它。

I have a SQL query SELECT * FROM table WHERE column LIKE '%pdd%'.

The problem is I need to get all results excluding those which start with "pdd", by which I mean find everything where "pdd" is not at the beginning. How could it be done?

I do need to match "pdd" when it is not at the beginning of the column.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

吃素的狼 2024-08-22 02:23:28

我假设您的意思是与“pdd”匹配的所有行,除了“pdd”开头的行。

SELECT * FROM table WHERE column LIKE '_%pdd%'.

LIKE 谓词中的“_”通配符表示“任意字符之一”,相当于正则表达式中的“.”。

I assume you mean all rows that match "pdd" except those where "pdd" is at the beginning.

SELECT * FROM table WHERE column LIKE '_%pdd%'.

The "_" wildcard in LIKE predicates means "one of any character," equivalent to "." in regular expressions.

感性不性感 2024-08-22 02:23:28

如果我正确理解您的要求,您需要的是:

SELECT * FROM table WHERE column LIKE '%pdd_%' and column NOT LIKE 'pdd_%'

If I understand your requirement correctly what you need is:

SELECT * FROM table WHERE column LIKE '%pdd_%' and column NOT LIKE 'pdd_%'
冷︶言冷语的世界 2024-08-22 02:23:28
SELECT * FROM table WHERE column LIKE '%pdd%' AND column NOT LIKE 'pdd%'

您可以根据这些在表中出现的频率来优化查询。

SELECT * FROM table WHERE column LIKE '%pdd%' AND column NOT LIKE 'pdd%'

You can optimise the query depending on how frequent these occurrences are in your table.

并安 2024-08-22 02:23:28

尝试:

SELECT * FROM table WHERE column NOT LIKE 'pdd%'

Try:

SELECT * FROM table WHERE column NOT LIKE 'pdd%'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文