MYSQL 查询语句的问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 05:30:50
一个产品表里面有个产品类别的字段 而类别不是单一的,可以是多类别 添加产品插入进去的是像 1,2,3,5 以逗号分隔的类别ID
请问我如何在前台比如通过类别编号为1 查询出所有产品 即(1,2,3可以 1,3,4也可以) 说得够明白了吧?哈哈
请看清楚我的提问。

你把1,2,3
造成(拼成,写成)下面的格式
typeid like '%1%' or typeid like '%2%' or typeid like '%3%'
但这样会有一个问题
如果你的类别超过10各
'1' 和 '10' 就是一样了
这样只有把'1'存成'01'
超过100的话存成'001'

的确,这应该使用模糊查询like,以前我做过一个项目,也碰到相同的问题,后来顺利解决了.

如果关键词设置不当,就可能查询错误,比如你查询1类,很可能其他类别也查询出来了,如18,321,212等等.

应该在数据库的设计中,在字段里面,每个类别前后都应该有逗号分隔,也就是说,字段中应该是 " ,1,2,3,4, "这样的存储形式.

查询的时候,就可以把 ",类别,"作为关键词,比如查1类,这样来查询:
select * from `表名` where `字段名` like `,2,`

如果是现成的字段,前后没有逗号分隔,也没有关系,用一条MYSQL语句就可以在前后加上逗号了.

那就使用模糊查询吧

select * from 表 where id like %1%

百分号表示可以是任意个数的字符

SELECT * FROM(表名) WHERE 类别ID LIKE %1% 同理 2,3,4.。。。

select * form(表名) where 后面是你的条件
%1%
%代表所有字符包括数字