Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hitung jumlah LIKE-cocok per Entri

Di MySQL, ekspresi boolean dapat digunakan sebagai bilangan bulat -- dengan 0 untuk false dan 1 untuk true. Jadi, berikut ini berfungsi:

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%';

EDIT:

Jika MySQL, Anda juga dapat mengekspresikan kueri ini sebagai:

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

Penggunaan having dalam konteks ini adalah ekstensi SQL dan tidak berfungsi di database lain. Namun, itu mengizinkan kueri untuk merujuk ke alias kolom untuk pemfilteran, tanpa menggunakan subkueri.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kotak centang formulir PHP dan indeks tidak terdefinisi

  2. Koneksi Jarak Jauh Mysql Ubuntu - alamat pengikatan gagal

  3. MySQL:Apa yang terjadi pada bidang non-agregat pada GROUP BY?

  4. Bagaimana cara menjumlahkan string yang dipisahkan koma dalam SQL?

  5. Mulai Melihat Hasil Kueri Sebelum Kueri Berakhir