【问题标题】:FIND_IN_SET for part of string in MysqlMysql中部分字符串的FIND_IN_SET
【发布时间】:2014-12-04 10:35:27
【问题描述】:

我需要对数据库中的表进行查询。到目前为止,我一直在使用FIND_IN_SET,因为我有这样的字符串:"twitter,bycicle,car"

然后,我可以通过FIND_IN_SET("twitter", nameOfColumn)搜索

但现在,我只需要搜索每个“集合”的一部分,例如:"twitter>10,bycicle,car"

它仍然适用于自行车和汽车,但如果我需要搜索推特,我找不到它。这样做的正确方法是什么?

【问题讨论】:

  • 如果你在字符串中有另一个符号(不是逗号)所以FIND_IN_SET() 不起作用,你可以使用substring_index
  • 你能给我举个例子吗?
  • 这个link 和我之前回答的问题一样,可能对你有帮助。

标签: mysql sql string select find-in-set


【解决方案1】:

以下查询将为您提供所需的内容,但请谨慎使用您拥有的数据:

SELECT *
FROM table1
WHERE col1 RLIKE 'twitter'

工作小提琴:http://sqlfiddle.com/#!2/66f538/1

【讨论】:

  • 因此我不想使用 LIKE,也许有一些相似的字符串会造成混淆。如果没有别的办法,我就用它
  • @Biribu 稍微改进一下,你也可以试试这个:RLIKE 'twitter.*,?'
  • 我遇到了比 db 中包含的单词短的问题。如果我尝试使用“twit”,我会返回该行...
【解决方案2】:

使用LIKE 运算符:

SELECT *
FROM table1
WHERE nameOfColumn LIKE '%twitter%';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多