Mysql
 sql >> база данни >  >> RDS >> Mysql

Търсете различни колони чрез разделяне със запетая

Това зависи от това дали искате да върнете редове, където име или град съвпадат точно със стойностите за търсене (= ), или редове, където всяка част от името или града съответстват на стойностите за търсене (LIKE ).

Независимо от кой се нуждаете, можете да започнете, като преобразувате своя низ за търсене в масив от низове като този:

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

array_map('trim'...). гарантира, че не се опитвате да съпоставите никакви интервали преди или след запетаите във вашия низ за търсене, разделен със запетая.

Ето примери за това как да изпълните заявката си, като използвате подготвени изрази в PDO. Първо, пълни съвпадения с помощта на 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);

и частични съвпадения с помощта на 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. NodeJS/mySQL - ER_ACCESS_DENIED_ERROR Достъпът е отказан за потребител 'root'@'localhost' (използвайки парола:ДА)

  2. Как да заобиколите създаването на схема на Slick 3.0 при получаване на грешки поради ключови спецификации без дължина

  3. Достъп до DB5 до MySQL автоматично

  4. Вземете ID на таблицата след вмъкване с ColdFusion и MySQL

  5. PHP система за опашка с Codeigniter. КАК?