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

Cara menulis kueri MySQL di mana A berisi ( a atau b )

Dua opsi:

  1. Gunakan LIKE kata kunci, bersama dengan tanda persen dalam string

    select * from table where field like '%a%' or field like '%b%'.
    

    (catatan:Jika string pencarian Anda berisi tanda persen, Anda harus menghindarinya)

  2. Jika Anda mencari kombinasi string yang lebih kompleks daripada yang Anda tentukan dalam contoh, Anda dapat menggunakan ekspresi reguler (regex):

    Lihat manual MySQL untuk lebih lanjut tentang cara menggunakannya:http:// /dev.mysql.com/doc/refman/5.1/en/regexp.html

Dari jumlah tersebut, menggunakan LIKE adalah solusi yang paling umum -- ini adalah SQL standar, dan umum digunakan. Regex kurang umum digunakan tetapi jauh lebih kuat.

Perhatikan bahwa opsi mana pun yang Anda gunakan, Anda harus menyadari kemungkinan implikasi kinerja. Mencari sub-string seperti ini berarti kueri harus memindai seluruh tabel. Jika Anda memiliki tabel yang besar, ini bisa membuat kueri menjadi sangat lambat, dan tidak ada jumlah pengindeksan yang akan membantu.

Jika ini merupakan masalah bagi Anda, dan Anda perlu mencari hal yang sama berulang kali, Anda mungkin lebih suka melakukan sesuatu seperti menambahkan bidang bendera ke tabel yang menetapkan bahwa bidang string berisi sub- string. Jika Anda tetap memperbarui bidang bendera ini saat Anda menyisipkan catatan pembaruan, Anda cukup menanyakan bendera saat Anda ingin mencari. Ini dapat diindeks, dan akan membuat kueri Anda jauh lebih cepat. Apakah sepadan dengan usaha untuk melakukannya terserah Anda, itu akan tergantung pada seberapa buruk kinerjanya menggunakan LIKE .



  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:=true vs true pada BOOLEAN. Kapan sebaiknya menggunakan yang mana? Dan mana yang vendor independen?

  2. laravel errno 150 batasan kunci asing salah dibentuk

  3. beberapa entitas yang ditambahkan mungkin memiliki kunci utama yang sama pada benih basis data

  4. MySQL CAST sebagai DATE

  5. MySQL mengembalikan catatan pertama dan terakhir untuk hasil identik berturut-turut