从我的sql表行中搜索至少一个逗号分隔值

时间:2016-11-21 06:43:43

标签: php mysql

我想创建一个查询,从表行中获取至少一个逗号分隔值匹配的结果。

就像我的自定义表具有以下值一样。 enter image description here

SR value are inserted 3 times so i want whenever i execute `SELECT QUERY` that will search `SR` value is inserted or not, if `SR` values inserted then do nothing else insert new row.

我使用了以下查询,但无法提供我想要的输出。

$get_old_model = $wpdb->get_results("SELECT model_name FROM `wp_make_details` WHERE `post_id` = ".$post_id."
            AND model_name LIKE '%".$modle_list."%'"); 

任何人都知道更多有关它帮助我PLZ。

1 个答案:

答案 0 :(得分:0)

引自FIND_IN_SET function文档:

  

如果字符串str在,则返回1到N范围内的值   字符串列表strlist由N个子串组成。字符串列表是   字符串由子字符串组成的字符串组成。如果是第一个   参数是一个常量字符串,第二个是SET类型的列,   FIND_IN_SET()函数已经过优化,可以使用位运算。返回   如果str不在strlist中,或者strlist是空字符串,则为0。返回   如果任一参数为NULL,则为NULL。此功能无法正常工作   如果第一个参数包含逗号(,)字符。

 mysql> SELECT FIND_IN_SET('b','a,b,c,d');
         -> 2

您可以尝试对您的案例进行以下查询:

Select model_name from `wp_make_details` where  `post_id` = ".$post_id."
        AND model_name LIKE FIND_IN_SET('SR',model_name) != 0;

如果已将SR插入表中,则此查询将返回行。