查询问题,求解答。thx

寂小魔 2014-01-15 02:13:57
例如:一个表中有 ID,userName,userInfo,Notes
我想查询 一个"王" 在userName和userInfo以及Notes 都存在的记录

create table t_user
(
ID int(11) not null auto_increment ,
userName varchar(64) default ' ',
userInfo varchar(32) default ' ',
Notes varchar(32) default ' ',
primary key (ID)
);
insert into t_user VALUES('张山','我是张山','小王亲戚'); -- 1
insert into t_user VALUES('李四','小王朋友','李四大大啊');-- 2
insert into t_user VALUES('王五','我是王五','小王就是我');-- 3
insert into t_user VALUES('刘六','我是刘六','刘六是我');-- 4
insert into t_user VALUES('刘七','我是刘七','小七');-- 5
insert into t_user VALUES('刘八','我是刘八','别叫我王八');-- 6
insert into t_user VALUES('刘九','小九','小八是蛋');-- 7
insert into t_user VALUES('张十','我是张十','小王很丑'); -- 8

实际要得到的数据是:1,2,3,6,8
...全文
157 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
寂小魔 2014-01-15
  • 打赏
  • 举报
回复
引用 5 楼 rucypli 的回复:
1=1永远成立 or后面的不起作用 肯定是全部数据 先left一个表 看看有无数据
我错了。我一开始就错了。因为sql是修改过来的。有几个地方没有修改到。 谢谢版主 耐心帮忙了。
rucypli 2014-01-15
  • 打赏
  • 举报
回复
1=1永远成立 or后面的不起作用 肯定是全部数据 先left一个表 看看有无数据
寂小魔 2014-01-15
  • 打赏
  • 举报
回复
引用 3 楼 rucypli 的回复:
你的语句怎么写的

select a.ID AS ProductID,a.NameCode,a.Name_cn,a.Name_en,p.PicName,a.BarCode,a.NewLevel,a.Status,a.HighPrice,d.SalesPlaceID FROM ProductInfo a left JOIN (SELECT ProductID,PicName FROM ProductPic where Sort = 1) as p ON a.ID = p.ProductID left join (select ProductID,SalesPlaceID from Channel_Product_Mapping WHERE SalesPlaceID = 2 GROUP BY ProductID) d on a.ID = d.ProductID where 1 = 1   or a.ID ='%test%' or a.Name_cn = '%test%' or a.NameCode ='%test%' or a.BarCode like '%test%'   GROUP BY a.ID ORDER BY a.ID DESC LIMIT 0,25;-- 查询的是全部数据 和没有 or 是一样

-- 然后改成
select a.ID AS ProductID,a.NameCode,a.Name_cn,a.Name_en,p.PicName,a.BarCode,a.NewLevel,a.Status,a.HighPrice,d.SalesPlaceID FROM ProductInfo a left JOIN (SELECT ProductID,PicName FROM ProductPic where Sort = 1) as p ON a.ID = p.ProductID left join (select ProductID,SalesPlaceID from Channel_Product_Mapping WHERE SalesPlaceID = 2 GROUP BY ProductID) d on a.ID = d.ProductID where  a.ID ='%test%' or a.Name_cn = '%test%' or a.NameCode ='%test%' or a.BarCode like '%test%'   GROUP BY a.ID ORDER BY a.ID DESC LIMIT 0,25		

-- 把 1=1 去掉后 就没有数据了
rucypli 2014-01-15
  • 打赏
  • 举报
回复
你的语句怎么写的
寂小魔 2014-01-15
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
select * from t_user where userName like '%王%' or userInfo like '%王%' or Notes like '%王%';
为什么我多个表做联合查询 使用这种方式查询不出数据?
rucypli 2014-01-15
  • 打赏
  • 举报
回复
select * from t_user where userName like '%王%' or userInfo like '%王%' or Notes like '%王%';

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧