SQL count times变量出现在一行的值中

时间:2016-01-20 06:46:45

标签: mysql sql

所以,我想知道是否可以使用SQL计算变量出现在表中的次数。

示例表:

ID   TextColumn 
1    foo  
2    foo foo foo
3    bar   

$var = "foo";

$var的所有列和$var的订单按从最高到最低的顺序返回。

示例结果:

(1)ID=2,count=3 (2)ID=1,count=1

这是否可以仅使用SQL?

我之前问了一个类似的问题但是它不清楚,所以如果这个问题也不清楚,请告诉我。

1 个答案:

答案 0 :(得分:1)

如果您使用的是SQL Server,则可以使用LENREPLACE执行此操作:

DECLARE @var VARCHAR(MAX) = 'foo'

SELECT *, 
    (LEN(TextColumn) - LEN(REPLACE(TextColumn, @var, ''))) / LEN(@var)
FROM tbl
WHERE 
    CHARINDEX(@var, TextColumn) > 0
ORDER BY 
    (LEN(TextColumn) - LEN(REPLACE(TextColumn, @var, ''))) / LEN(@var) DESC

SQL Fiddle