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

Кога да използвате стойности, разделени със запетая, в колона на DB?

Вече знаете отговора.

Първо, вашият PHP код дори не работи, защото работи само ако потребител 2 има само една стойност в LookingFor или Drugs. Ако някоя от тези колони съдържа множество стойности, разделени със запетая, тогава IN няма да работи дори ако тези стойности са в същия ред като стойностите на потребител 1. Какво очаквате да направи IN, ако дясната страна има една или повече запетаи?

Следователно не е "лесно" да правите това, което искате в PHP. Всъщност това е доста болезнено и би включвало разделяне на полетата на потребител 2 на единични стойности, писане на динамичен SQL с много ИЛИ, за да се направи сравнението, и след това извършване на изключително неефективна заявка за получаване на резултатите.

Освен това фактът, че дори трябва да пишете PHP код да отговорите на такъв относително прост въпрос за пресичането на две групи означава, че вашият дизайн е с големи недостатъци. Това е точно такъв проблем (релационна алгебра), която SQL съществува за решаване. Правилният дизайн ви позволява да разрешите проблема в базата данни и след това просто имплементирайте слой за презентация отгоре в PHP или друга технология.

Направете го правилно и ще имате много по-лесно време.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Опцията ON DELETE CASCADE не се генерира при използване на генериране на ddl схема на Mysql

  2. Заявката за актуализиране на Python MySQLdb е неуспешна

  3. Как да извлечете точно съвпадащи записи в Spring JPA @Query

  4. Как безопасно да вмъкнете код в mySQL база данни

  5. Получавате първия ред от ресурсния низ на mysql?