mysql选择字符串包含关键字的位置

kmynzznz  于 2021-07-26  发布在  Java
关注(0)|答案(3)|浏览(461)

所以,我一直在做一些挖掘,但我真的找不到具体的东西。假设我有一张table叫 products 有两列: product_name 以及 vendor .

product_name  |  vendor
Item A        | Computer Mania
Item B        | Incredible Connection
Item C        | Computer Mania

现在假设我不记得怎么拼写了 computer 我说,好吧,我记得名字以 co 结束于 er 而且有 mania 之后。
如何使用where中的这些条件构建select查询?我不知道怎么做。
以下是我尝试的: SELECT * FROM products WHERE vendor_name LIKE '%co%'; 然而,这又回来了 Incredible Connection 我也不想要。

kxe2p93d

kxe2p93d1#

我会用 REGEXP 在这里:

SELECT *
FROM yourTable
WNERE vendor REGEXP '^co[a-z]*er mania';

这个regex模式要求查找名称中第一个单词以开头的所有供应商 co 结束于 er ,后面是单词 mania .

rfbsl7qr

rfbsl7qr2#

必须正确使用sql通配符。
这个 % 通配符表示零个或多个字符。所以,如果你用 %co% ,它将搜索字符串 co 在“供应商”列中。 vendor 问题中给定示例中的列包含字符串 co 在每一排。
如果你说是从 co 结束于 er mania ,然后使用通配符作为 vendor like 'co%er mania' . 这将搜索 vendor 以开头的值的列 co 结束于 er mania ```
select * from products where vendor like 'co%er mania';

请参阅本文以了解有关sql通配符的更多信息。
6jygbczu

6jygbczu3#

例如,您可以使用 like :

where vendor_name like 'co%er mania'

您可能还希望使这个大小写独立,尽管这是mysql中的默认值。

相关问题