Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Strona „Wyszukiwanie zaawansowane” PHP/ MySql

Sugerowałbym użycie MySQL FullText Search używając tego z Boolean Full-Text Searches funkcjonalność, powinieneś być w stanie uzyskać pożądany rezultat.

Edycja:

Żądany przykład oparty na żądanych warunkach („To tylko jedno pole i mogą wybrać jedną z 4 opcji (tj. 1 słowo, dokładne słowa, co najmniej 1 słowo, bez terminu).”)

Zakładam, że używasz php na podstawie pierwszego posta

<?php
$choice = $_POST['choice'];
$query = $_POST['query'];

if ($choice == "oneWord") {
    //Not 100% sure what you mean by one word but this is the simplest form
    //This assumes $query = a single word
    $result = mysql_query("SELECT * FROM table WHERE MATCH (field) AGAINST ('{$query}' IN BOOLEAN MODE)");
} elseif ($choice == "exactWords") {
    $result = mysql_query("SELECT * FROM table WHERE MATCH (field) AGAINST ('\"{$query}\"' IN BOOLEAN MODE)");
} elseif ($choice == "atLeastOneWord") {
    //The default with no operators if given multiple words will return rows that contains at least one of the words
    $result = mysql_query("SELECT * FROM table WHERE MATCH (field) AGAINST ('{$query}' IN BOOLEAN MODE)");
} elseif ($choice == "withoutTheTerm") {
    $result = mysql_query("SELECT * FROM table WHERE MATCH (field) AGAINST ('-{$query}' IN BOOLEAN MODE)");
}
?>

mam nadzieję, że pomoże to w pełnym wykorzystaniu operatorów w dopasowaniach logicznych, patrz Wyszukiwanie pełnego tekstu logicznego



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chcesz ograniczyć wartość pola MySQL do określonego zakresu (wartości dziesiętne)

  2. Jak znaleźć n-tą pozycję w MySQL?

  3. DbUpdateConcurrencyException przy użyciu Entity Framework 6 z MySql

  4. ColdFusion Parametryzacja zapytania

  5. Neo4j - Usuń ograniczenie za pomocą Cypher