我想创建一个查询,从表行中获取至少一个逗号分隔值匹配的结果。
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。
答案 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插入表中,则此查询将返回行。