select * from order where id in (select order_id from EditOrder)
创新互联建站主要从事成都做网站、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务酉阳土家族苗族,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
我也不知道对不对,你可以试一下,我好多年没写过了
select *from emp where name in('张三','李四','王五');
如果()里面的是变量,可以用数组,只不过数组要处理一下
创建一个function getChildLst, 得到一个由所有子节点号组成的字符串.
mysql delimiter //
mysql
mysql CREATE FUNCTION `getChildLst`(rootId INT)
- RETURNS varchar(1000)
- BEGIN
- DECLARE sTemp VARCHAR(1000);
- DECLARE sTempChd VARCHAR(1000);
-
- SET sTemp = '$';
- SET sTempChd =cast(rootId as CHAR);
-
- WHILE sTempChd is not null DO
- SET sTemp = concat(sTemp,',',sTempChd);
- SELECT group_concat(id) INTO sTempChd FROM treeNodes where FIND_IN_SET(pid,sTempChd)0;
- END WHILE;
- RETURN sTemp;
- END
- //
Query OK, 0 rows affected (0.00 sec)
mysql
mysql delimiter ;
使用我们直接利用find_in_set函数配合这个getChildlst来查找
mysql select getChildLst(1);
+-----------------+
| getChildLst(1) |
+-----------------+
| $,1,2,3,4,5,6,7 |
+-----------------+
1 row in set (0.00 sec)
因为一般表里面ID都是索引和自增长标示,
Sqlserver中 Identity的类型是int ,你写int id = (int) reader["id"]肯定没问题。
但是Mysql中自增长是AUTO_INCREMENT, 他的类型是long
所以你要写long id = (long)reader["id"];或者 var id = Convert.ToInt64(reader["id"]);