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

Cari kolom yang berbeda dengan memisahkan koma

Ini tergantung pada apakah Anda ingin mengembalikan baris yang nama atau kotanya sama persis dengan nilai penelusuran (= ), atau baris di mana bagian mana pun dari nama atau kota cocok dengan nilai pencarian (LIKE ).

Terlepas dari mana yang Anda butuhkan, Anda dapat memulai dengan mengubah string pencarian Anda menjadi array string seperti ini:

$strings = array_map('trim', explode(',', $searchString));

array_map('trim'... memastikan bahwa Anda tidak mencoba mencocokkan spasi apa pun sebelum atau sesudah koma dalam string penelusuran yang dipisahkan koma.

Berikut adalah contoh cara mengeksekusi kueri Anda menggunakan pernyataan yang disiapkan di PDO. Pertama, kecocokan penuh menggunakan IN :

$phs = rtrim(str_repeat('?,', count($strings)),',');
$stmt = $pdo->prepare("SELECT * FROM your_table WHERE name IN ($phs) OR city IN ($phs)");
// double the string values to us in both INs
$values = array_merge($strings, $strings);
$stmt->execute($values);

dan kecocokan sebagian menggunakan LIKE :

$sql = '';
foreach ($strings as $string) {
    $sql .= ' name LIKE ? OR city LIKE ? OR';
    $values[] = $string;
    $values[] = $string;
}
$stmt = $pdo->prepare('SELECT * FROM your_table WHERE' . rtrim($sql, ' OR'));
$stmt->execute($values);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabel InnoDB ada di MySQL tetapi mengatakan mereka tidak ada setelah menyalin database ke server baru

  2. Kunci Baca/Tulis MongoDB

  3. MySQL dinamis dengan variabel lokal

  4. Bagaimana cara membuat objek JSON di MySql dengan nilai boolean?

  5. MySql - HAVING vs WHERE