sql 查询语句in相关问题

作者&投稿:晋泻 (若有异议请与网页底部的电邮联系)
SQL in查询语句~

在数据库中有一个pzdz 这是个字段吗?
里面的是数字组成的字符串
是这种格式吗?
pzdz
1,3,5,2
3,6,15,17

select * from table where pzdz like('aa,%') or pzdz like('%,aa') or pzdz like('%,aa,%') or pzdz='aa';
考虑到了
pzdz
...,aa,...
aa,...
....,aa
aa
四种情况

笨办法

有区别的 你测试吧

肯定不可以的阿,不是你描述不清就是你自己都没搞清楚要想说什么。
IN 多用于子查询或检查约束中

外部的值是定死的吗,定死的话,sql文可以实现

SELECT id FROM
(SELECT * FROM a WHERE a = 1
UNION ALL
SELECT * FROM a WHERE b = 10
UNION ALL
SELECT * FROM a WHERE c = 3
UNION ALL
SELECT * FROM a WHERE d = 6
UNION ALL
SELECT * FROM a WHERE e = 5
UNION ALL
SELECT * FROM a WHERE f = 9)
AS table1
GROUP BY id
HAVING COUNT(id) > 2

mssql2005返回结果(你例子里错了)
id
----
1
2
3

不定死的话要写存储过程了,把1 10 3 6 5 9 换成相应的变量名即可
另外分页处理是写在程序里的吧

-----------------------------------------------------------
恩,不错的想法
mssql2005

SELECT id, name, a, b, c, d, e, f
FROM a
WHERE ((CASE WHEN a = 1 THEN 1 ELSE 0 END) + (CASE WHEN b = 10 THEN 1 ELSE 0 END) + (CASE WHEN c = 3 THEN 1 ELSE 0 END)
+ (CASE WHEN d = 6 THEN 1 ELSE 0 END) + (CASE WHEN e = 5 THEN 1 ELSE 0 END) + (CASE WHEN f = 9 THEN 1 ELSE 0 END) > 2)

能做, 分少, 没时间~
大概告诉你思路吧。
外部数据当作是一个表B,用join进行比较。
用case 语句做判断,( case A.a = B.a then 1 else 0 end ) as a1...f1
这么做之后呢, 判断的时候加这个条件(a1+b1+...+f1 > 3 )
明白了吗?

1 10 3 6 5 9 与a表匹配的多余3项的应该是id为1的吧!怎么会是2,3呢?不明白


昆明市19318302793: 关于SQL语句IN的查询问题 -
贺胖枢丹: 应该用CHARINDEX() select * from T where charindex('2',a) > 0 in可以理解为在一个集合里.

昆明市19318302793: 请教下带有“IN”的SQL查询语句索引问题 -
贺胖枢丹: 改为:SELECTppi.Price FROM product_price_info ppi ,mix_info mi where ppi.id = mi.SourceID and mi.DestinationID = '1000' AND mi.SourceTable = 'product_price_info'在ppi.id, mi.sourceId, mi.destinationId, mi.sourceTable上建立btree索引即可...

昆明市19318302793: sql 语句中 in 和 =的区别 -
贺胖枢丹: select * from students where studentname='张三'select * from students where studentname in('张三','李四','王五')--或 select * from students where studentname in(select studentname from signinfo) 你应该明白区别了吧

昆明市19318302793: SQL 查询中的in 的作用是用来做什么的 基础类 -
贺胖枢丹: 用来判断某属性的取值是否在某范围内.如楼上的例子,取姓名属性为张三和李四的学生

昆明市19318302793: mysql查询 怎么使用 in -
贺胖枢丹: in作为查询条件,一般典型有两种用法:一是IN常量,例如下面语句查询一、三年级的学生: SELECT * FROM student WHERE grade IN ('一','三');二是使用子查询,也就是IN(SQL语句),例如下面的语句查询不及格的班级的所有学生: SELECT * FROM student WHERE classno IN ( select classno from scores where score<60 );

昆明市19318302793: 请教一个sql in语句的问题 -
贺胖枢丹: 如果liming和lm是两个内容的话,用这个 select * from t_user where username in...

昆明市19318302793: sql 2008 查询语句的查询条件:in的参数使用查询语句来代替查不到数据 -
贺胖枢丹: 能否给出具体的类型么 TLK_COLUMN_ITEM.ID order_user .itemid(SELECT itemid from order_user where orderid=1)与SELECT itemid from ews_order_user o where o.orderid=1这个语句是相等的么 表都不同 是你打错了 还是..

昆明市19318302793: SQL查询中in和exists的区别分析
贺胖枢丹: 1.exist,not exist一般都是与子查询一起使用. In可以与子查询一起使用,也可以直接in (a,b.....) 2.exist会针对子查询的表使用索引. not exist会对主子查询都会使用索引. in与子查询一起使用的时候,只能针对主查询使用索引. not in则不会使用任何索...

昆明市19318302793: 关于sql大数据查询时in效率很低的问题 -
贺胖枢丹: 1. 如果可能的话,用union,但是你说的 in 中的数据项是动态的.故只能考虑动态sql,比较麻烦.2. 可以考虑,将in中的数据项原先插入到一个表中(固定的表或者临时表、相关列要有索引),查询的时候,关联上这个表试试看.

昆明市19318302793: sql修改语句 in可以用什么代替 -
贺胖枢丹: sql语句中的in 里面本来就是一个子查询语句. 比如查询所有用户信息,并且用户的课程名是语文的sql语句

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