在SQL中选择具有多个字符的值

时间:2013-11-23 07:03:07

标签: mysql sql

让我用一个例子解释我的问题

考虑以下值列

City
-------
Chennai
Delhi
Mumbai

我想要的输出是

City
-------
Chennai
Mumbai

当你看到价值'Chennai'有两个'N'和'孟买'有两个'M'

查找满足上述条件的值的查询是什么

我正在使用MySQL

3 个答案:

答案 0 :(得分:1)

您可以使用此处的某些逻辑,然后按照Count all occurances of different characters in a column

的方式进行过滤

答案 1 :(得分:0)

你能尝试一下吗?如果需要,可以创建函数并接受动态值并传递给相应的函数

IF(LEN('Chennai')-LEN(REPLACE('Chennai', 'N', ''))>1 )
 Select 'Chennai'

答案 2 :(得分:0)

如果城市名称仅包含拉丁字符,则可能的解决方案

SELECT DISTINCT city
 FROM table1 c CROSS JOIN
(
   SELECT 0 n UNION ALL
   SELECT a.N + b.N * 5 + 1 n
     FROM 
    (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) a
   ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) b
    ORDER BY n
) n
  WHERE CHAR_LENGTH(city) - CHAR_LENGTH(REPLACE(LOWER(city), CHAR(97 + n.n), '')) > 1

输出:

|    CITY |
|---------|
|  Mumbai |
| Chennai |

这是 SQLFiddle 演示