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

Cari seluruh tabel di mySQL untuk sebuah string

Coba sesuatu seperti ini:

SELECT * FROM clients WHERE CONCAT(field1, '', field2, '', fieldn) LIKE "%Mary%"

Anda mungkin ingin melihat dokumen SQL untuk informasi tambahan tentang operator string dan ekspresi reguler.

Sunting:Mungkin ada beberapa masalah dengan bidang NULL, jadi untuk berjaga-jaga jika Anda mungkin ingin menggunakan IFNULL(field_i, '') alih-alih hanya field_i

Sensitivitas huruf besar/kecil :Anda dapat menggunakan susunan case-insensitive atau sesuatu seperti ini:

... WHERE LOWER(CONCAT(...)) LIKE LOWER("%Mary%")

Cukup telusuri semua bidang :Saya percaya tidak ada cara untuk membuat kueri SQL yang akan mencari di semua bidang tanpa secara eksplisit menyatakan bidang yang akan dicari. Alasannya adalah ada teori basis data relasional dan aturan ketat untuk memanipulasi data relasional (seperti aljabar relasional atau aljabar codd; dari sinilah SQL berasal), dan teori tidak mengizinkan hal-hal seperti "cari saja semua bidang". Tentu saja perilaku aktual tergantung pada realisasi nyata vendor. Tetapi dalam kasus umum itu tidak mungkin. Untuk memastikannya, centang SELECT sintaks operator (WHERE bagian, tepatnya).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat database di MySQL

  2. Bagaimana cara menggabungkan dua tabel dan membandingkannya? (Saya sudah bertanya beberapa kali, tetapi saya tidak dapat menemukan jawabannya.)

  3. Bisakah Anda menggunakan nilai agregat dalam ON DUPLICATE KEY

  4. Cetak hasil dalam format MySQL dengan Python

  5. Tips untuk Memberikan Kinerja Database MySQL - Bagian Kedua