“合并” Mysql 中的 IN 和 LIKE 运算符

发布于 2024-12-09 12:17:51 字数 403 浏览 0 评论 0原文

我有一个问题,我猜测是否有更好的方法来实现我的目标。我在 Mysql 中有这个查询来检索一些行:

SELECT *
FROM table
WHERE field IN ('V','S','G','B')

我想做的是运行一个查询来检索字段具有类似于 IN 列表中的值的行。我知道最简单的方法是使用此查询:

SELECT *
FROM table
WHERE field LIKE '%V%' OR field LIKE '%S%' OR
      field LIKE '%G%' OR field LIKE '%B%'

我想知道是否有一个运算符可以执行此操作,或者至少,如果该运算符不存在,则有更好的方法来编写查询。

感谢所有帮助我的人。

I've a problem and I'm guessing if there's a better way to achieve my goal. I've this query in Mysql to retrieve some rows:

SELECT *
FROM table
WHERE field IN ('V','S','G','B')

What I would like to do is to run a query that retrieve the rows where the field has value LIKE those in the IN list. I know that the trivial way is to use this query:

SELECT *
FROM table
WHERE field LIKE '%V%' OR field LIKE '%S%' OR
      field LIKE '%G%' OR field LIKE '%B%'

What I want to know is there's an operator that do this or at least, if that operator does not exist, a better way to write the query.

Thanks to everyone that will help me.

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

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

发布评论

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

评论(1

2024-12-16 12:17:51

将值放入表 (Params) 中,然后使用

SELECT *
  FROM table
 WHERE EXISTS (
               SELECT * 
                 FROM Params
                WHERE table.field LIKE '%' + Params.col + '%'
              );

请考虑将通配符放入 Params 表中的值中。

Put the values in a table (Params) then use

SELECT *
  FROM table
 WHERE EXISTS (
               SELECT * 
                 FROM Params
                WHERE table.field LIKE '%' + Params.col + '%'
              );

Consider also putting the wildcard characters into the values in the Params table.

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