MySQL的字符串转换为表达
问题描述:
我有一个MySQL程序有状况:MySQL的字符串转换为表达
Where category like CONCAT("%",@category,"%")
...这正常工作与单一类别。
现在我想与多个类别进行比较,我试图从PHP(字符串连接)建立字符串,但它不工作(在MySQL程序)。
我怎么能转换这个条件来匹配多个样表达?
答
假设你的类别栏是这样的:“猫,狗,大象”;分隔关键字。有3个解决方案:
1)最丑陋的解决方案,可能是最糟糕:
WHERE category like CONCAT("%",@category1,"%")
OR category like CONCAT("%",@category2,"%")
但对于这个你应该知道你有多少个类别要去查询。这种方式可能不会工作。
2)如果你可以用full-text search functions来匹配类别字段MyISAM表这将是比第一种选择更为快速,整洁。
3)最好的办法是重新设计表结构有类别和主题项目(之间的关系表,因为它似乎是一个1-N的关系)
如果你可以提供一些定义(代码)和有助于理解的数据样本。
请粘贴您尝试过的字符串连接 – 2011-02-28 17:08:20
您必须解释如何存储'category'值 - 看起来像将多个类别单词放入单个列(我们称之为“非规范化数据” - 不太好) – 2011-02-28 17:08:48
如何http://stackoverflow.com/questions/337704/parameterizing-a-sql-in-clause/337817#337817? – Konerak 2011-02-28 17:09:11