Mysql
 sql >> база данни >  >> RDS >> Mysql

Пребройте броя на LIKE-съвпаденията на запис

В MySQL булевите изрази могат да се използват като цели числа - с 0 за false и 1 за true. И така, следното работи:

SELECT p.*,
       ((name LIKE '%samsung%') + (name LIKE '%galaxy%') + (name LIKE '%s4%')) as hits
FROM   myprods p
WHERE  name LIKE '%samsung%' OR name LIKE '%galaxy%' OR name LIKE '%s4%';

РЕДАКТИРАНЕ:

Ако MySQL, можете също да изразите тази заявка като:

SELECT p.*,
       ((name LIKE '%samsung%') + (name LIKE '%galaxy%') + (name LIKE '%s4%')) as hits
FROM   myprods p
HAVING hits > 0;

Използването на having в този контекст е SQL разширение и не работи в други бази данни. Но той позволява на заявка да се отнася до псевдоним на колона за филтриране, без да се използва подзаявка.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свързване с MySQL сървър на локален хост чрез Docker

  2. Сложна php mysqli заявка за вмъкване на данни, ако не съществуват:получаване на дублирано име на колона '?'

  3. Хърватски диакритични знаци в MySQL db (utf-8)

  4. HTML - Промяна\Актуализиране на съдържанието на страницата без опресняване\презареждане на страницата

  5. Предупреждение:формуляр на тази страница има повече от 1000 полета PHP MySql