Как выполнить условие если число вхождений подстроки в строку больше чем?

118
09 апреля 2021, 18:30

Есть вот такой запрос в 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
Answer 1

Протестировал Ваш запрос на 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.

Answer 2

Чтобы не переписывать выражение, можно использовать алиас поля выходного набора, переместив условие в секцию 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
READ ALSO
Проблема с выборкой только уникальныйх полей и функцией CONCAT

Проблема с выборкой только уникальныйх полей и функцией CONCAT

У меня стоит задача: выбрать из таблицы с актерами всех актеров, которые не имеют однофамильцевЯ делаю это следующим запросом:

108
JQuery AJAX не срабатывает success, в чем проблема?

JQuery AJAX не срабатывает success, в чем проблема?

При клике отправляется объект на сервер, статус==200, но 'success' не срабатываетПодскажите, в чём проблема

140
Как добавить в массив наследуемого класса

Как добавить в массив наследуемого класса

Дано задание "Даны два классаКласс В является наследником класса А

115
Вывод поля с бд

Вывод поля с бд

Когда пользователь регистрируется на сайте и после регистрации ему показывает сообщение $info_reg = 'Вы успешно зарегистрировались! Ваша реферальная...

110