当前位置:数据库 > MySQL >>

mysql能否实现如下情况的精确查询?

表article设计如下: id(int[6]) user_id(varchar[30])这个字段存储的值类似:1或者1,19或者2,3,11 title(varchar[200]) 现在只希望将user_id为1的title搜出来,如果按下面这个搜索: select title from article where user_id like '%1%' 则会将包含数字1但不一定是user_id为1的文章也给搜出来了,想知道mysql能否在搜索的时候指定这个1前面和后面要么什么都没有,要么只能有 , 号? 请高手指教,谢谢!
追问:但对于值为 1,19的这种情况,你这个就不行了吧?我是要查user_id为1的所有的文章,你这样写,那user_id为19的也被查出来了。。。
答案:如果要在现有基础上修改,比较简单的方法,建议你在存储这个userid的时候,在程序中生成这种格式再存入数据库,即
,1,2,3,19,11,
也就是保证前后一定都有,
这样你搜索的时候,如果查id为1的,就可以简单的用user_id like '%,1,%'  或者user_id like '%,1,%'  or user_id like '%,9,%' 

或者建议更改数据库设计,增加一个article-user表,它的字段为
articleid   userid
这样比如对应article的id为100的,在数据库中就可能是
articleid   userid
100  2
100  3
 100   11
其他:select title from article where user_id = '1';就行了么~ select title from article 
where user_id = ‘1’ 
 or user_id like '1,%' 
 or user_id like '%,1' 
 or user_id like '%,1,%'
其实我还是没明白你想要的是什么 

上一个:MYSQL 中的一个问题:
下一个:mysql 语句

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,