Есть вот такой запрос в Mysql
SELECT a.`product_id`, c.`name`, c.`tag`, (CHAR_LENGTH(c.`tag`) - CHAR_LENGTH(REPLACE(c.`tag`,',',''))) div CHAR_LENGTH(',') as counts
FROM `table`
Как добавить условие, что если результат больше 5?
(CHAR_LENGTH(c.`tag`) - CHAR_LENGTH(REPLACE(c.`tag`,',',''))) div CHAR_LENGTH(',') > 5
Т. е. что-то вида, извините уж за такой кривой пример
SELECT a.`product_id`, c.`name`, c.`tag`, (CHAR_LENGTH(c.`tag`) - CHAR_LENGTH(REPLACE(c.`tag`,',',''))) div CHAR_LENGTH(',') as counts
FROM `table`
WHERE (CHAR_LENGTH(c.`tag`) - CHAR_LENGTH(REPLACE(c.`tag`,',',''))) div CHAR_LENGTH(',') > 5
Протестировал Ваш запрос на w3schools, вроде бы работает. Подставил свои значения
SELECT 1, "test" as name, "tag,asd" as tag, ((CHAR_LENGTH('tag,asd') - CHAR_LENGTH(REPLACE('tag,asd',',',''))) div CHAR_LENGTH(',')) as counts
from Customers
WHERE ((CHAR_LENGTH('tag,asd') - CHAR_LENGTH(REPLACE('tag,asd',',',''))) div CHAR_LENGTH(',')) > 5
Все, что сделал - это обернул дополнительно в скобки содержимое перед as counts и перед > 5.
Чтобы не переписывать выражение, можно использовать алиас поля выходного набора, переместив условие в секцию HAVING.
SELECT a.`product_id`,
c.`name`,
c.`tag`,
(CHAR_LENGTH(c.`tag`) - CHAR_LENGTH(REPLACE(c.`tag`,',',''))) DIV CHAR_LENGTH(',') AS counts
FROM `table`
HAVING counts > 5
Сборка персонального компьютера от Artline: умный выбор для современных пользователей