gpt4 book ai didi

mysql - 在 MySQL 中,如何在预定义列表中获取包含至少两个字符的所有字符串

转载 作者:行者123 更新时间:2023-11-29 01:31:17 25 4
gpt4 key购买 nike

我有一个字符串表,想要检索包含至少两个预定义列表字符的所有行。通过示例更好地解释:

我的表格是这样的:

Id|Word
1|Cat
2|Chicken
3|Dog
4|Elephant
5|Fish
6|Goat

这可能是我的字符列表:

Characterlist = 'A', 'B', 'C', 'E'

然后 select 语句应该返回:猫、鸡、大象

我查看了 mySQL 文档中的字符串函数,但找不到合适的函数来执行此操作。有可能吗?

最佳答案

这是一种低效的方法,它依赖于将 bool 条件返回的 0 或 1 相加:

SELECT
*,
(
(UPPER(Word) LIKE '%A%') +
(UPPER(Word) LIKE '%B%') +
(UPPER(Word) LIKE '%C%') +
(UPPER(Word) LIKE '%D%')
) AS lettermatches
FROM yourtable
HAVING lettermatches >= 2

LIKE 条件各返回 0 或 1。将它们相加,HAVING 子句将结果限制为得分为 2 或更高的行。

使用 LOCATE() 代替 LIKE 可能更快:

SELECT
*,
(
(LOCATE('A', UPPER(Word)) > 0) +
(LOCATE('B', UPPER(Word)) > 0) +
(LOCATE('C', UPPER(Word)) > 0) +
(LOCATE('D', UPPER(Word)) > 0)
) AS lettermatches
FROM yourtable
HAVING lettermatches >= 2

关于mysql - 在 MySQL 中,如何在预定义列表中获取包含至少两个字符的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11629844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com