Tag: sql

select语句以查找某些字段上的重复项

你能帮我用SQL语句在多个领域find重复? 例如,在伪代码中: select count(field1,field2,field3) from table where the combination of field1, field2, field3 occurs multiple times 从上面的陈述中, 如果有多个事件,我想select除了第一个以外的每个logging 。

如何将单列值分割为多个列值?

我有一个问题,将单列值分成多个列值。 例如: Name ———— abcd efgh ijk lmn opq asd j. asdjja asb (asdfas) asd asd 我需要这样的输出: first_name last_name ———————————- abcd efgh ijk opq asd asdjja asb asd asd null 中间名称可以省略(不需要中间名称)列已经创build,需要插入单个Name列中的数据。

限制WHERE col IN(…)条件

我使用下面的代码: SELECT * FROM table WHERE Col IN (123,123,222,….) 但是,如果我在IN子句中放入超过3000个数字,SQL会引发错误。 有谁知道是否有一个大小限制或类似的东西?

MySQL – 两个不同数据库中的表之间的连接?

在MySQL ,我有两个不同的数据库 – 我们称它们为A和B 是否可以在数据库A中的表与数据库B的表之间执行连接?

在一个查询中从两个表中删除

我有两个表在MySQL中 #messages table : messageid messagetitle . . #usersmessages table usersmessageid messageid userid . . 现在我想从邮件表中删除它没关系。 但是当我删除消息与messageid ='1'例如它仍然存在usersmessage我不得不从这两个表中删除一次; 所以我使用以下查询: DELTE FROM messages LEFT JOIN usersmessages USING(messageid) WHERE messageid='1' ; 然后我testing DELETE FROM messages , usersmessages WHERE messages.messageid = usersmessages.messageid and messageid='1' ; 但是这两个查询并不能完成这个任务。

MySQL“WITH”子句

我试图使用MySQL创build一个“WITH”子句的视图 WITH authorRating(aname, rating) AS SELECT aname, AVG(quantity) FROM book GROUP BY aname 但似乎并不像MySQL支持这一点。 我认为这是非常标准的,我相信Oracle支持这一点。 有没有办法强制MySQL使用“WITH”子句? 我已经使用MyISAM和innoDB引擎进行了尝试。 这两个都不起作用。

MySQL IN语句的PDO绑定值

我有一个与PDO有关的问题,我很想在被它困扰了很长一段时间之后得到答案。 以这个例子: 我将一个ID数组绑定到一个在MySQL IN语句中使用的PDO语句。 该数组会说: $ values = array(1,2,3,4,5,6,7,8); 数据库安全variables将是$ products = implode(','$ values); 那么, $产品将会是一个值为“1,2,3,4,5,6,7,8”的STRING 声明如下所示: SELECT users.id FROM users JOIN products ON products.user_id = users.id WHERE products IN (:products) 当然, 美元产品将被视为:产品 。 但是,当语句被编译并绑定了值时,实际上看起来像这样: SELECT users.id FROM users JOIN products ON products.user_id = users.id WHERE products IN ('1,2,3,4,5,6,7,8') 问题是它执行IN语句内的所有内容作为一个单一的string,因为我已经准备好它作为逗号分隔值绑定到语句。 我真正需要的是: SELECT users.id FROM users […]

连接/聚合string的最佳方式

我正在find一种方法来将不同行中的string聚合成一行。 我正在寻找在许多不同的地方这样做,所以有一个function,以促进这将是很好的。 我已经尝试了使用COALESCE和FOR XML解决scheme,但是他们并没有为我裁剪。 string聚合会做这样的事情: id | Name Result: id | Names — – —- — – —– 1 | Matt 1 | Matt, Rocks 1 | Rocks 2 | Stylus 2 | Stylus 我已经看了CLR定义的聚合函数来代替COALESCE和FOR XML ,但显然SQL Azure 不支持CLR定义的东西,这对我来说是一个痛苦,因为我知道能够使用它会解决很多问题给我。 是否有任何可能的解决方法,或类似的最佳方法(可能不如CLR最佳,但嘿,我会拿我能得到的),我可以用来聚合我的东西?

只有在行更改后,MySQL才会触发更新

只有在数据被真正改变的情况下,才有可能使用“更新后”触发器。 我知道“新和旧”。 但是,使用它们时,我只能比较列。 例如“NEW.count <> OLD.count”。 但我想要的东西:运行触发如果“新<>老” 一个例子: create table foo (a INT, b INT); create table bar (a INT, b INT); INSERT INTO foo VALUES(1,1); INSERT INTO foo VALUES(2,2); INSERT INTO foo VALUES(3,3); CREATE TRIGGER ins_sum AFTER UPDATE ON foo FOR EACH ROW INSERT INTO bar VALUES(NEW.a, NEW.b); UPDATE foo SET b = 3 […]

自我连接的解释

我不明白需要自我join。 有人可以向我解释吗? 一个简单的例子将是非常有帮助的。