MYSQL 多表 条件多LIKE 并且是OR 链接, 出来好多重复数据,为什么啊?

作者&投稿:仇冰 (若有异议请与网页底部的电邮联系)
mysql 多条件模糊查询语句怎么写啊?~

select * from mm where name like '王%' or name like '张%' or name like '李%'
或者
select name from table where name like '王%'
union
select name from table where name like '张%'
union
select name from table where name like '李%'

2楼的没那么用过 不知可行不可行 也学习了

你的代码 有两个 where

WHERE Model_No like 'iphone4s%'
OR WHERE Model_No like 'v480%'


改成这样

WHERE Model_No like 'iphone4s%'
OR Model_No like 'v480%'

MYSQL多表条件多LIKE 并且是OR 链接,出来好多重复数据是设置错误造成的,解决方法为:

1、先看下我们的表数据,有一些数据是重复的。

2、要查找重复数据,我们可以使用mysql里的having语句,如图。

3、执行这个语句后,我们可以看到现在的结果里显示的就是表中重复数据的字段。

4、要删除这些重复的数据,我们找出这些数据的ID,在select语句里,添加id字段,使用max函数,可以得到重复数据最后面的id。

5、执行结果如图,得到重复数据的id为8和9。

6、这样我们就可以使用delete语句来删除这二个id的数据了。

7、然后在外边添加一个delete语句就行了,详细代码如图。



重复值的原因:

一般就是连接的过程中连接条件出问题或者where语句有问题,所以最好检查一下,并且建议从简单的表开始关联,不要一次性关联太多表,会使逻辑复杂。

解决方法:

多表连接查询,且去掉重复列,使用  USING(),代码如下:

select * from (select * from school left join course USING (courseid)) e left join student USING (studentid);

select * from school left join course USING (courseid)相当于

select * from school left join course on school.courseid=course.courseid;

扩展资料:

常用语句:

1、新建用户:

>CREATE USER name IDENTIFIED BY 'ssapdrow';

2、更改密码:

>SET PASSWORD FOR name=PASSWORD('fdddfd');

3、权限管理

>SHOW GRANTS FOR name;//查看name用户权限

>GRANT SELECT ON db_name.* TO name;//给name用户db_name数据库的所有权限

>REVOKE SELECT ON db_name.* TO name;//GRANT的反操作,去除权限;

一、数据库操作: 

1、查看数据库:

>SHOW DATABASES;

2、创建数据库:

>CREATE DATABASE db_name;  //db_name为数据库名

3、使用数据库:

>USE db_name;

4、删除数据库:

>DROP DATABASE db_name;



FROM 
  `tabservice` , 
  `tabserviceclass` , 
  `tabservicemoduleclass` 
WHERE   
  (`tabservice`.`tag` LIKE '%99%' 
  OR `tabservice`.`title` LIKE '%99%' 
  OR `tabservice`.`content` LIKE '%99%')  
  AND ( `tabserviceclass`.`id`=`tabservice`.`class_id` 
      AND `tabservicemoduleclass`.`id`=`tabserviceclass`.`p_id` ) 
  
几个 OR 的地方, 加括号括起来,  和 关联条件做  AND 的处理。


把 WHERE `tabservice`.`tag` LIKE '%99%' OR `tabservice`.`title` LIKE '%99%' OR `tabservice`.`content` LIKE '%99%' AND ( `tabserviceclass`.`id`=`tabservice`.`class_id` AND `tabservicemoduleclass`.`id`=`tabserviceclass`.`p_id` )
改成:
WHERE( `tabservice`.`tag` LIKE '%99%' OR `tabservice`.`title` LIKE '%99%' OR `tabservice`.`content` LIKE '%99%' )AND ( `tabserviceclass`.`id`=`tabservice`.`class_id` AND `tabservicemoduleclass`.`id`=`tabserviceclass`.`p_id` )

你没有建立表之间的连接 即表1.字段1=表2.字段2 类似的


绥德县19143896098: mysql中用like实现多条件模糊查询 -
兴雁甘维: 你的代码 有两个 where WHERE Model_No like 'iphone4s%' OR WHERE Model_No like 'v480%' 改成这样 WHERE Model_No like 'iphone4s%' OR Model_No like 'v480%'

绥德县19143896098: mysql多条件动态查询 -
兴雁甘维: select * from table where (name1 like '%key1%' or name2 like '%key2%' or name3 like '%key3%') 同理,你还可以任意再次组合,用or连接就行 如再上 name1 like key1 or name1 like key2 or name1 like key3 name2 like key1 or name2 like key2 or name2 like key3 等等

绥德县19143896098: mysql的where like多条件用法,详进
兴雁甘维: SELECT * FROM video WHERE bt like '%$kw2%' or bt like '%$kw3%' limit 4

绥德县19143896098: MYSQL 多表 条件多LIKE 并且是OR 链接, 出来好多重复数据,为什么啊? -
兴雁甘维: FROM`tabservice` ,`tabserviceclass` ,`tabservicemoduleclass` WHERE(`tabservice`.`tag` LIKE '%99%'OR `tabservice`.`title` LIKE '%99%'OR `tabservice`.`content` LIKE '%99%')AND ( `tabserviceclass`.`id`=`tabservice`.`class_id`AND `...

绥德县19143896098: mysql如何执行多条件的模糊查询(取交集的) -
兴雁甘维: SELECT * FROM 表名 WHERE stu_nianji like "2010%" and stu_banji like "信管%" 是这个意思吗?多个条件取交集用AND,取并集用OR,可以举一反三,祝你好运.

绥德县19143896098: 跪求mysql下的like %XX% 替换语句, -
兴雁甘维: 既然选用MYSQL数据量也不可能大到哪里,Select语句在数据服务端查询,若不用like条件可使用组合条件试试,只要服务器不是太差,速度应该是可以接收的.

绥德县19143896098: mysql多表同条件查询 -
兴雁甘维: select t.aid from (select '表1' tablename,表1.* from 表1 union all select '表2' tablename,表2.* from 表2 union all select '表3' tablename,表3.* from 表3) t where field='aa' and value='vvv-12'

绥德县19143896098: mysql的查询语句多个条件怎么写 -
兴雁甘维: select * from mm where name like '王%' or name like '张%' or name like '李%' 或者 select name from table where name like '王%' union select name from table where name like '张%' union select name from table where name like '李%'2楼的没那么用过 不知可行不可行 也学习了

绥德县19143896098: mysql多表条件查询 -
兴雁甘维: 两个表中ID相同,username和adduser是相同的.对吧?select TableA.* from TableA left join on TableA.ID=TableB.TableAID where TableA.type=1 and TableB.UserName='admin'===== left join是左联 from aaa,aaa这表是主表 left join bbb on ccc bbb这表是副表,ccc是条件,一定要两个表中都存在同样的数据才可进行这样的联结===== 查询字段在两个表都有数据,则都显示 主表有数据,副表没有,副表字段为空的值显示为null 主表没有数据,就不会显示.

绥德县19143896098: mysql多条件查询时各个条件的优先级问题
兴雁甘维: =的优先级要高于LIKE的,模糊匹配的优先级最低了. 所以先去找date = '2010-11-1'的纪录的.因为SQL默认精确查询(=)会减少下次扫描纪录. 这个不关你索引的事情的,SQL运算符之间=优先级最高的.做过SQL性能分析的都知道的. (DB2...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网