【问题标题】:get result string independently order of given characters独立地获取结果字符串给定字符的顺序
【发布时间】:2014-07-31 16:59:41
【问题描述】:

例如,在我的表 'table1' 和列 'code' 中,我有 varchar “New York”。

例如,给定字符“yk”,我想获得“纽约”。

我可以通过下面的查询在 MySql 中使用 REGEXP 来获取它

SELECT * FROM table1 WHERE (code) REGEXP '.*y+.*k+.*';

问题是如果搜索字符是“ky”,我希望得到相同的结果

谁能帮帮我?

Tks.

【问题讨论】:

    标签: mysql regex search


    【解决方案1】:

    两个独立的正则表达式如何:

     SELECT * FROM table1 WHERE (code) REGEXP '.*y.*' and (code) REGEXP '.*k.*';
    

    另外,我不熟悉 mysql 正则表达式,但是这应该可行吗:

     SELECT * FROM table1 WHERE (code) REGEXP 'y' and (code) REGEXP 'k';
    

    或者这个

     SELECT * FROM table1 WHERE (code) like '%y%' and (code) like '%k%';
    

    【讨论】:

    • 我认为第三种解决方案是最简单的。
    【解决方案2】:

    搜索两次怎么样:

    SELECT * FROM table1 WHERE (code) REGEXP '.*y+.*k+.*' OR (code) REGEXP '.*k+.*y+.*';
    

    【讨论】:

    • 我给出的例子只有 2 个字符,但我可以有 3 个、4 个或更多,所以不可能进行所有组合。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 2013-09-29
    相关资源
    最近更新 更多