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

Kiedy używać wartości oddzielonych przecinkami w kolumnie DB?

Znasz już odpowiedź.

Po pierwsze, twój kod PHP nie jest nawet bliski działania, ponieważ działa tylko wtedy, gdy użytkownik 2 ma tylko jedną wartość w LookingFor lub Drugs. Jeśli któraś z tych kolumn zawiera wiele wartości oddzielonych przecinkami, IN nie zadziała nawet jeśli te wartości są dokładnie w tej samej kolejności, co wartości Użytkownika 1. Czego oczekuje się od IN, jeśli prawa strona ma jeden lub więcej przecinków?

Dlatego nie jest "łatwo" robić to, co chcesz w PHP. W rzeczywistości jest to dość uciążliwe i wymagałoby podzielenia pól użytkownika 2 na pojedyncze wartości, napisania dynamicznego SQL z wieloma OR w celu wykonania porównania, a następnie wykonania wyjątkowo nieefektywnego zapytania w celu uzyskania wyników.

Ponadto fakt, że musisz nawet napisać kod PHP odpowiedź na tak stosunkowo proste pytanie o przecięcie dwóch zestawów oznacza, że ​​twój projekt jest bardzo wadliwy. To jest dokładnie tego rodzaju problem (algebra relacyjna), którą SQL istnieje do rozwiązania. Prawidłowy projekt pozwala rozwiązać problem w bazie danych a następnie po prostu zaimplementuj warstwę prezentacji na wierzchu w PHP lub innej technologii.

Zrób to poprawnie, a będziesz miał znacznie łatwiejszy czas.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy złożone unikalne klucze są indeksowane w MySQL? - DBMS

  2. Hibernacja mysql čć

  3. wstawiaj lub pomijaj wpisy w zapytaniu mysql na podstawie warunków wyników

  4. MySQL grupuje według i max zwraca błędne wiersze

  5. Puste wyjście PHP z bazy danych MySQL dla longbloba