Сопоставить значение из массива значений в MySQL - PullRequest
0 голосов
/ 22 ноября 2011

У меня такой запрос:

$sql = "
        SELECT
            *
        FROM
            tbl_emp_data
        WHERE
            company_qualification = '$q'
    ";

Теперь мое поле company_qualification не является единственным значением, вместо этого это слова, разделенные запятыми, например BSc,BA,BCom и т. И значение $q является одним значением, скажем BA. Так как же мне искать данные компании по значению $q. Я не могу использовать LIKE, поскольку он будет соответствовать таким полям, как BA и BBA.

Ответы [ 3 ]

4 голосов
/ 22 ноября 2011

Вы можете использовать FIND_IN_SET

$sql = "
        SELECT
            *
        FROM
            tbl_emp_data
        WHERE        
           FIND_IN_SET($q,company_qualification)
    ";
1 голос
/ 22 ноября 2011
$sql = "
        SELECT
            *
        FROM
            tbl_emp_data
        WHERE
            company_qualification IN ('".implode("','",$q)."')
    ";
0 голосов
/ 22 ноября 2011

Вы можете использовать IN так:

SELECT * FROM tbl_emp_data WHERE company_qualification IN ('BSc', 'BA', 'BCom');
...