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

Sphinx bez użycia identyfikatora auto_increment

Jasne - łatwo to obejść. Jeśli potrzebujesz stworzyć własne ID tylko dla Sphinxa i nie chcesz, żeby się kolidowały, możesz zrobić coś takiego w swoim sphinx.conf (przykładowy kod dla MySQL)

source products {

  # Use a variable to store a throwaway ID value
  sql_query_pre = SELECT @id := 0 

  # Keep incrementing the throwaway ID.
  # "code" is present twice because Sphinx does not full-text index attributes
  sql_query = SELECT @id := @id + 1, code AS code_attr, code, description FROM products

  # Return the code so that your app will know which records were matched
  # this will only work in Sphinx 0.9.10 and higher!
  sql_attr_string = code_attr  
}

Jedynym problemem jest to, że nadal potrzebujesz sposobu, aby dowiedzieć się, jakie rekordy zostały dopasowane przez twoje wyszukiwanie. Sphinx zwróci identyfikator (który jest teraz bez znaczenia) oraz wszelkie kolumny, które oznaczysz jako „atrybuty”.

Sphinx 0.9.10 i nowsze będą mogły zwrócić kod produktu jako część wyników wyszukiwania, ponieważ obsługuje atrybuty ciągów.

0.9.10 nie jest jeszcze oficjalną wersją, ale wygląda świetnie. Wygląda na to, że Zawodny przejeżdża go na Liście Craiga więc nie byłbym zbyt zdenerwowany poleganiem na tej funkcji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SUBTIME() Przykłady – MySQL

  2. Jak połączyć się z bazą danych MySQL w PHP za pomocą rozszerzenia mysqli?

  3. Mysql SELECT wewnątrz UPDATE

  4. Utwórz użytkownika MySQL w systemie Linux za pomocą wiersza poleceń

  5. Jak wybrać wszystkie kolumny w sql z wyjątkiem jednej kolumny?