【问题标题】:mysql select count of records from a string which have exact substringmysql 从具有精确子字符串的字符串中选择记录数
【发布时间】:2014-04-19 08:38:47
【问题描述】:

我有五个记录,如下所示。我需要获取具有“摇滚”的数据。所以我需要这样的输出,输出应该显示'rock'的计数,所以根据上面的数据库输出计数应该是“3”,即rec 1,rec 3&rec 5“。所以计数不应该采取“rec 2 & rec 4”。

rec1: [u'armenian rock', u'armenian', u'singer-songwriter', u' rock'] 
rec2: [u'punk', u' armenian rock', u' new wave ', u' italian']
rec3: [u'rock']
rec4: [u'japanese', u' okuda tamio related', u" rock'n'roll", u'roots rock' ]
rec5: [你'测试摇滚',你'亚美尼亚',你'创作歌手',你“摇滚”]

【问题讨论】:

  • 你要数一下有多少行包含“rock”,否则。
  • @Rakesh:你能解释一下输出是怎样的3??
  • 最好用u rock而不是rock更新您正在搜索的问题

标签: mysql select substring sql-like


【解决方案1】:

试试字符串函数

INSTR(str,substr)

在您的查询中。

类似这样的:

SELECT COUNT(*) FROM yourTable WHERE INSTR(yourTable.tags, 'rock') > 0;

另一种选择是使用

LOCATE(substr,str), LOCATE(substr,str,pos)

请查看 mysql 文档:

http://dev.mysql.com/doc/refman/5.1/en/string-functions.html

【讨论】:

  • 它将计算所有的rock实例。
【解决方案2】:
SELECT (LENGTH(tags) - LENGTH(REPLACE(tags, 'rock', ''))) / LENGTH('rock') AS count FROM your_table

试试这个。是的,看起来很臃肿,但据我所知,没有其他可能的解决方案。

【讨论】:

    【解决方案3】:
    SELECT SUM((LENGTH(tags) - LENGTH(REPLACE(tags, 'u\' rock', ''))) / LENGTH('u\' rock'))as counting 
    FROM tableName
    

    FIDDLE

    【讨论】:

      【解决方案4】:

      你可以用这个:

      SELECT COUNT(*) FROM Table1 WHERE INSTR(Table1.tags, '\' rock') > 0;
      

      fiddle

      【讨论】:

      • 我使用过这个查询,但也返回了这种类型的记录 [u'punk', u' punk rock', u' pop punk', u" rock'n'roll"] 和 [u '独立',你'摇滚应用',你'另类',你'emo']
      • @GOOG:所以它应该只适用于rock??
      • 是的。它会有一些案例(引用),例如案例 1:[u'under 2000 listeners', u' rock', u' brazil', u' brasil'] 案例 2: [u'noise rock', u' kill rock stars ', u'metal', u'rock'] 案例 3:[u'punk', u' punk rock', u' pop punk', u"rock"]
      • case 1 是带空格的单引号,然后是rock,case 2是没有空格的单引号,然后是rock,case 3是带空格的双引号,rock 也可以不带空格。这些类型的记录只考虑选择。
      猜你喜欢
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      相关资源
      最近更新 更多