Questions tagged «sql»

结构化查询语言(SQL)是用于查询数据库的语言。问题应包括代码示例,表结构,示例数据以及正在使用的DBMS实现的标签(例如MySQL,PostgreSQL,Oracle,MS SQL Server,IBM DB2等)。如果您的问题仅涉及特定的DBMS(使用特定的扩展名/功能),请改用该DBMS的标签。使用SQL标记的问题的答案应使用ISO / IEC标准SQL。

7
使用MySQL的FOR UPDATE锁定时,究竟锁定了什么?
这不是完整/正确的MySQL查询专用伪代码: Select * from Notifications as n where n.date > (CurrentDate-10 days) limit by 1 FOR UPDATE http://dev.mysql.com/doc/refman/5.0/en/select.html指出:如果将FOR UPDATE与使用页或行锁的存储引擎一起使用,则查询所检查的行将被写锁,直到当前交易结束 是这里只有被MySQL锁定返回的一条记录还是必须扫描以查找单个记录的所有记录?
77 mysql  sql 

4
选择前1个字段并分配给局部变量
我想从此查询中获取ExtractedDate的值,并在下一个查询中将其用作@LastExtractDate。我怎么做? SELECT TOP 1 [ExtractedDate] FROM [OnsiteV4].[dbo].[SqlPendingIndex] order by ExtractedDate desc 下一个查询: insert into @table(Hex, KeyDeviceId, ObjectDateTime, ExtractedDate ) SELECT CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), ObjectValue, 1)) AS Hex, KeyDeviceId, ObjectDateTime , GETDATE () FROM SQLPending WHERE (ObjectSubType LIKE '%GAS%') and (ObjectDateTime > @LastExtractDate)
77 sql  sql-server 

12
在同一列上使用多个WHERE条件进行选择
好的,我想我可能会忽略一些显而易见的/简单的事情...但是我需要编写一个查询,该查询仅返回与同一列上的多个条件匹配的记录... 我的表是一个非常简单的链接设置,用于将标志应用于用户... ID contactid flag flag_type ----------------------------------- 118 99 Volunteer 1 119 99 Uploaded 2 120 100 Via Import 3 121 100 Volunteer 1 122 100 Uploaded 2 等等...在这种情况下,您会看到联系人99和100都被标记为“志愿者”和“已上传” ... 我需要做的是返回仅与通过搜索表单输入的多个条件相匹配的那些contactid ... contactid必须与所有选择的标志匹配...在我看来,SQL应该类似于: SELECT contactid WHERE flag = 'Volunteer' AND flag = 'Uploaded'... 但是...什么也没返回...我在这里做错了什么?

4
删除MySQL中列的最后两个字符
我有一个SQL列,其中的条目是字符串。我需要在修剪最后两个字符后显示这些条目,例如,如果该条目199902345应该输出1999023。 我尝试研究TRIM,但看起来只有在我们知道最后两个字符是什么的情况下,它才能提供修剪功能。但就我而言,我不知道最后两个数字是什么,只需要丢弃它们即可。 简而言之,什么是MySQL字符串操作可以修剪字符串的最后两个字符? 我必须补充一点,字符串的长度不是固定的。它可以是9个字符,11个字符或任何其他字符。
77 mysql  sql  string 

4
django模型:获取ID列表
我如何获取表的所有ID /主键的列表。说我有这张桌子: class Blog(models.Model) title = models.CharField() body = models.CharField() author = models.ForeignKey(Author) 假定字段作者是Author对象。我想获得所有Blog的ID,其中author = author 我知道我可以用 blogs = Blog.objects.filter(author=author) 并以列表形式获取所有博客对象,但是我如何获取列表IDS / PK?类似于“从博客中选择作者为作者的ID”

3
PostgreSQL提取每个ID的最后一行
假设我有下一个数据 id date another_info 1 2014-02-01 kjkj 1 2014-03-11 ajskj 1 2014-05-13 kgfd 2 2014-02-01 SADA 3 2014-02-01 sfdg 3 2014-06-12 fdsA 我想为每个id提取最后一个信息: id date another_info 1 2014-05-13 kgfd 2 2014-02-01 SADA 3 2014-06-12 fdsA 我该如何处理?

5
字符串或二进制数据将被截断。该语句已终止
我在SQL服务器上遇到了一些问题,这是我创建的函数: ALTER FUNCTION [dbo].[testing1](@price int) RETURNS @trackingItems1 TABLE ( item nvarchar NULL, warehouse nvarchar NULL, price int NULL ) AS BEGIN INSERT INTO @trackingItems1(item, warehouse, price) SELECT ta.item, ta.warehouse, ta.price FROM stock ta WHERE ta.price >= @price; RETURN; END; 当我编写查询以使用如下所示的功能时,收到错误 字符串或二进制数据将被截断。该语句已终止 我该如何解决这个问题? select * from testing1(2) 这是我创建表格的方式 CREATE TABLE stock(item …
77 sql  sql-server 

6
MySQL SELECT DISTINCT多列
假设我a, b c, d在MySQL数据库的表中有列。我想做的是选择表中所有这4列的所有唯一值(只有唯一值)。我尝试了类似的东西: SELECT DISTINCT a,b,c,d FROM my_table; SELECT DISTINCT a,b,c,d FROM my_table GROUP BY a,b,c,d; 这些都不起作用。有人可以帮忙吗? 谢谢 注意我想要分别显示各列的不同值a, b, c d。不是价值的独特组合
77 mysql  sql  distinct 

9
CASE .. WHEN在Oracle SQL中的表达式
我有1列的表格,并且有以下数据 Status a1 i t a2 a3 我想在我的选择查询中显示以下结果 Status| STATUSTEXT a1 | Active i | Inactive t | Terminated a2 | Active a3 | Active 我认为的一种方法是在选择查询中使用Switch When表达式 SELECT status, CASE status WHEN 'a1' THEN 'Active' WHEN 'a2' THEN 'Active' WHEN 'a3' THEN 'Active' WHEN 'i' THEN 'Inactive' WHEN 't' THEN …
77 sql  oracle  oracle10g 

2
SQL-如果存在,则将更新插入其他
我想要做的就是INSERT在我的数据库的用户,但IF EXISTS它应该UPDATE排,ELSE INSERT INTO一个新行。 Ofcourse我连接到数据库第一和GET的$name,$email并$birthday从URL字符串。 $con=mysqli_connect("localhost","---","---","---"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $name=$_GET['name']; $email=$_GET['email']; $birthday=$_GET['birthday']; 可以,但是只添加新行; mysqli_query($con,"INSERT INTO subs (subs_name, subs_email, subs_birthday) VALUES ('$name', '$email', '$birthday')"); mysqli_close($con); 这是我尝试过的; mysqli_query($con,"INSERT INTO subs (subs_name, subs_email, subs_birthday) VALUES '$name', '$email', '$birthday' ON DUPLICATE …
77 mysql  sql  insert  exists 


8
按ID删除数百万行的最佳方法
我需要从PG数据库中删除大约200万行。我有一个需要删除的ID列表。但是,我尝试执行此操作的任何方法都需要花费几天的时间。 我尝试将它们放在一个表中并按100个批次进行处理。4天后,它仍在运行,仅删除了297268行。(我必须从ID表中选择100个ID,删除该列表中的位置,从ID表中删除我选择的100个ID)。 我试过了: DELETE FROM tbl WHERE id IN (select * from ids) 这也是永远的。难以估计需要多长时间,因为直到完成我才能看到它的进度,但是查询在2天后仍在运行。 当我知道要删除的特定ID且有数百万个ID时,这只是一种寻找从表中删除的最有效方法。


21
在SQL Server中获取上个月的记录
我想根据我的数据库表[member]字段“ date_created”获取上个月的记录。 什么是SQL来做到这一点? 为了澄清起见,上个月-2009年1月8日至2009年8月31日 如果今天是2010年3月1日,我需要获取2009年1月12日至2009年12月31日的记录。
77 sql  sql-server  tsql 

2
ORDER BY子句在视图,内联函数,派生表,子查询和公用表表达式中无效
除非还指定了TOP,OFFSET或FOR XML,否则ORDER BY子句在视图,内联函数,派生表,子查询和公用表表达式中无效。 我在尝试执行以下查询时遇到上述错误。谁能看看我在这里做错了什么吗? SELECT * FROM ( SELECT Stockmain.VRNOA, item.description as item_description, party.name as party_name, stockmain.vrdate, stockdetail.qty, stockdetail.rate, stockdetail.amount, ROW_NUMBER() OVER (ORDER BY VRDATE) AS RowNum FROM StockMain INNER JOIN StockDetail ON StockMain.stid = StockDetail.stid INNER JOIN party ON party.party_id = stockmain.party_id INNER JOIN item ON item.item_id = stockdetail.item_id …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.