Опитайте нещо подобно:
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
раздел, за да бъдем точни).