【发布时间】:2013-10-07 13:57:59
【问题描述】:
希望你一切都好
我很难写一个查询
这是我的问题解释
我有一个数据库表说“jreviews_content”,其中有一个名为“jr_produits”的字段
在“jr_produits”中,数据的格式是*ryan-decosta*tom-gosling*,所以我想要一个基于精确单词的搜索查询,即如果用户键入“rya”,mysql 不应该返回任何内容 但是如果用户类型 ryan 那么它应该返回该行同样如果用户类型“gos” mysql 不应该返回任何东西 但是如果用户输入 gosling 那么它应该返回 ryan 和 gosling 是确切单词的行
我正在写的查询是
SELECT *
FROM `jreviews_content`
WHERE jr_produits LIKE '%*ryan-%' or jr_produits LIKE '%-ryan*%'
or jr_produits LIKE '%*ryan*%' or jr_produits LIKE '%-ryan-%';
我希望以其他更有效的方式来完成(通过正则表达式或任何其他方法)
SELECT * FROM `jreviews_content` WHERE jr_produits REGEXP '^[*-]ryan[*-]$'
它不获取任何东西
也没有
SELECT * FROM `jreviews_content` WHERE jr_produits like '%[*-]ryan[*-]%'
请提出建议
【问题讨论】:
-
更改您的数据库架构,不要尝试在每条记录中创建自定义表!!!
标签: mysql