0

I m trying to get posts which includes a spesific tag.

The tag row content

,iphone|1468338028,,android|1468338028,,blackberry|1468338028,

query

SELECT * FROM shares WHERE FIND_IN_SET(tag, 'iphone') > 0 ORDER BY DATE DESC limit 10

What is the correct way to do it ?

ScaisEdge
  • 131,976
  • 10
  • 91
  • 107
caner taşdemir
  • 203
  • 3
  • 9

2 Answers2

1

Your tag is iphone|1468338028 and you look for iphone. That does not match.
Replace the | with , to separate the values.

SELECT * FROM shares 
WHERE FIND_IN_SET(replace(tag, '|', ','), 'iphone') > 0 
juergen d
  • 201,996
  • 37
  • 293
  • 362
1

Another alternative is to use LIKE "%text%", if you're not required to use FIND_IN_SET().

SELECT * FROM shares 
WHERE tag LIKE "%iphone%"
ORDER BY DATE DESC limit 10

Above snippet should achieve the same, thus avoiding replacing and trimming issues.

Tool
  • 12,126
  • 15
  • 70
  • 120