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

Hasil pencarian PHP menghasilkan hasil yang berbeda jika Anda memberikan satu huruf saja

Kueri sql Anda perlu mengelompokkan kondisi Anda dengan benar

$query=mysql_query("select * from persons where status like 'found' and (firstname like '%$searchtext%' or lastname like '%$searchtext%') order by date desc LIMIT $start,$per_page ");

Apa yang Anda lakukan setara dengan sesuatu seperti ini dalam kode:

if (status == 'found' && firstname like 'a')
{
    return row;
}
else if (lastname like 'a')
{
    return row;
}

Jika Anda melihat ini mungkin sedikit lebih jelas, jika kondisi pertama gagal (satu-satunya yang memeriksa apakah status == 'found' kemudian akan melompat ke kondisi berikutnya (setelah pernyataan OR) dan hanya memeriksa apakah lastname pertandingan.

Anda perlu mengelompokkan kondisi pernyataan pilihan Anda sehingga memeriksanya dengan benar:

...where status like 'found' and (firstname like '%$searchtext%' or lastname like '%$searchtext%') order by...

Dalam hal ini, kami mengelompokkan keduanya firstname dan lastname kondisi bersama-sama (dalam tanda kurung) sehingga seluruh kondisi ATAU menghasilkan satu jawaban benar/salah, jawaban itu kemudian diterapkan ke status periksa setelahnya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Data BLOB dikembalikan di MySQL menggunakan AES_DECRYPT dengan klausa ORDER

  2. Parameter Opsional dalam prosedur tersimpan Mysql

  3. Menghitung Z-Score untuk setiap baris di MySQL? (sederhana)

  4. Bagaimana cara membuat database Mysql untuk mendukung Bahasa Arab?

  5. masukkan data ke MYSQL menggunakan array PHP