Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql中如何在一条记录中选择多个值?_Mysql_Sql_Csv_Select_Where Clause - Fatal编程技术网

mysql中如何在一条记录中选择多个值?

mysql中如何在一条记录中选择多个值?,mysql,sql,csv,select,where-clause,Mysql,Sql,Csv,Select,Where Clause,我有一张多列的桌子。其中一个包含多个参数,如何选择包含其中一个参数的字段。例如,我的查询是: select name from product where product='carpet' and selling='new'; 销售栏包含您正在寻找的“新”、“折扣”和… 如果字符串str位于 由N个子字符串组成的字符串列表strlist字符串列表是一个 由、个字符分隔的子字符串组成的字符串 mysql>描述产品; +---------+------------------+------+---

我有一张多列的桌子。其中一个包含多个参数,如何选择包含其中一个参数的字段。例如,我的查询是:

select name from product where product='carpet' and selling='new';
销售栏包含您正在寻找的“新”、“折扣”和…

如果字符串str位于 由N个子字符串组成的字符串列表strlist字符串列表是一个 由、个字符分隔的子字符串组成的字符串

mysql>描述产品;
+---------+------------------+------+-----+---------+----------------+
|字段|类型|空|键|默认|额外|
+---------+------------------+------+-----+---------+----------------+
|id | int(11)无符号| NO | PRI | NULL |自动增量|
|乘积| varchar(255)| YES | | NULL ||
|出售| varchar(255)|是| |空||
+---------+------------------+------+-----+---------+----------------+
一组3行(0.00秒)
mysql>从产品中选择*;
+----+---------+---------------------------+
|id |产品|销售|
+----+---------+---------------------------+
|1 |地毯|全新,打折,你好,世界|
|2 |叉子|已用,其他|
|3 |板|新|
|4 |勺|空|
+----+---------+---------------------------+
一组4行(0.00秒)
mysql>从产品中选择*
->其中product='地毯',FIND_IN_SET('new',selling)0;
+----+---------+---------------------------+
|id |产品|销售|
+----+---------+---------------------------+
|1 |地毯|全新,打折,你好,世界|
+----+---------+---------------------------+
一行一组(0.00秒)

就像@BentCoder正确回答的那样,MySQL有一个专用函数
FIND_IN_SET()
,如果在包含逗号分隔值的字符串中找到值,则返回字段索引

SELECT * FROM products where product = 'carpet' and 'new' like concat('%',selling,'%');
或者您也可以尝试在左右两侧添加逗号:

select * from products where product= 'carpet' and CONCAT(',', selling, ',') like '%,new,%'

请添加长期价值的说明。通过这种方式,其他人可以从你的答案中学习,并快速了解它是否适用于他们自己的问题。这会让你的价值如此之高,并增加你获得选票的机会。@SherylHohman谢谢你指出这一点。所以需要更多像你这样的人来让像我们这样的人付出更多;)请更新您的答案,以文本形式嵌入输出。您可以在它前面加上
,将引号格式应用于结果。或者,有时需要使用代码格式。MD允许文本的表格式对齐。因此,指南要求代码、数据、错误消息和输出为文本形式,以便用户可以轻松地复制粘贴,并且因为图像中的文本可能很难阅读,尤其是在移动设备上。(图像下载也需要更多带宽。)感谢您的详细回答。请考虑更新,以便您的结果更容易被所有用户访问。
select * from products where product= 'carpet' and CONCAT(',', selling, ',') like '%,new,%'