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

Потърсете цяла таблица в mySQL за низ

Опитайте нещо подобно:

SELECT * FROM clients WHERE CONCAT(field1, '', field2, '', fieldn) LIKE "%Mary%"

Може да искате да видите SQL документи за допълнителна информация относно низовите оператори и регулярните изрази.

Редактиране:Възможно е да има някои проблеми с полетата NULL, така че за всеки случай може да искате да използвате IFNULL(field_i, '') вместо само field_i

Чувствителност на главни и малки букви :Можете да използвате съпоставяне без значение от главни и малки букви или нещо подобно:

... WHERE LOWER(CONCAT(...)) LIKE LOWER("%Mary%")

Просто потърсете всички полета :Вярвам, че няма начин да се направи SQL-заявка, която да търси из всички полета, без изрично да се декларира поле за търсене. Причината е, че има теория за релационни бази данни и строги правила за манипулиране на релационни данни (нещо като релационна алгебра или codd алгебра; това е, от което произлиза SQL), а теорията не позволява неща като "просто търсене във всички полета". Разбира се, действителното поведение зависи от конкретната реализация на продавача. Но в общия случай това не е възможно. За да сте сигурни, проверете SELECT синтаксис на оператора (WHERE раздел, за да бъдем точни).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разбера дали моята таблица е MyISAM или Innodb

  2. Комбиниране на две таблици с sql JOIN?

  3. Как да изчислим ранга в MySQL

  4. mysql получава last_insert_id() в тригер

  5. Връзка между каталог, схема, потребител и екземпляр на базата данни