我只需要从表中删除重复行,就像我在表中有3个重复行一样,我的查询将从3个重复行中删除2行.
我怎么能得到这个?请帮我.
我可以用
select * from sent_txts s
LEFT JOIN received_txts r ON s.msg_link_id = r.id
WHERE r.action_id = 6;
Run Code Online (Sandbox Code Playgroud)
顶部选择匹配的行,
如何编写查询以删除双方的匹配行?
就像是
delete sent_txts s
LEFT JOIN received_txts r ON s.msg_link_id = r.id
WHERE r.action_id = 6;
Run Code Online (Sandbox Code Playgroud) 我在SQL中遇到一个带有意外结果的简单DELETE语句时出现问题,它似乎将该单词添加到列表中.一定是傻事!但我看不到它,尝试了几种不同的方式.所有相同的结果都很混乱.
public void IncludeWord(string word)
{
// Add selected word to exclude list
SqlConnection conn = new SqlConnection();
String ConnectionString = "Data Source = dev\\SQLEXPRESS ;" + "Initial Catalog=sml;" + "User id=** ;" + "Password =*;" + "Trusted_Connection=No";
using (SqlConnection sc = new SqlConnection(ConnectionString))
{
try
{
sc.Open();
SqlCommand Command = new SqlCommand(
"DELETE FROM excludes WHERE word='@word'" +
conn);
Command.Parameters.AddWithValue("@word", word);
Command.ExecuteNonQuery();
}
catch (Exception e)
{
Box.Text = "SQL error" + e;
}
finally
{
sc.Close();
}
ExcludeTxtbox.Text …Run Code Online (Sandbox Code Playgroud) 对于一个项目中的测试用例,如果字段之一满足条件之一,我必须删除记录。最简单的似乎是简单的触发器:
delimiter $$
drop trigger w_leb_go $$
create trigger w_leb_go after update on test
for each row
begin
set @stat=NEW.res;
set @id=NEW.id;
IF @stat=3 THEN
delete from test where id=@id;
END IF;
end$$
delimiter ;
Run Code Online (Sandbox Code Playgroud)
但正如我怀疑有错误:
更新测试集 res=3,其中 id=1;
错误 1442 (HY000):无法更新存储函数/触发器中的表“test”,因为它已被调用此存储函数/触发器的语句使用。
仅通过访问数据库还可以如何完成?我的意思是我不应该更改经过测试的应用程序。
好的,所以我有一个巨大的条目列表,并在其中一个列中(为简单起见,我们称之为num,这是一个数字,类似于123456780000(它们的长度和格式都相同),但有时会有类似的字段这个
12345678E000
or
12345678H000
Run Code Online (Sandbox Code Playgroud)
现在,我需要删除num列不完全是数字的所有行.num的类型是TEXT,而不是INTEGER.所以上面的例子应该删除,而不123456780000应该删除.
我尝试了两种解决方案,其中一种可以工作,但是不够优雅和杂乱,另一种根本不起作用.
我尝试的第一件事是
DELETE FROM MY_TABLE WHERE abs(num) == 0.0
Run Code Online (Sandbox Code Playgroud)
因为根据文档,如果给出TEXT值,abs(X)将返回0.0,并且不可转换为实数.所以我认为应该让所有"仅限数字"通过并删除带有字符的那些.但它没有做任何事情,它甚至不删除任一行.
我接下来要做的就是
DELETE FROM MY_TABLE WHERE num LIKE "%A%" OR "%B%" OR "%C%"
Run Code Online (Sandbox Code Playgroud)
这似乎工作,但数据库很大,我不知道哪些字符可以出现,虽然我可以只"%D%" OR "%E%" OR "%F%" OR ...用整个字母表,这感觉不雅和杂乱.我实际上想了解一下SQLite语言.
最后,我的问题是:如何以一种简单的方式解决这个问题?也许我的abs(X)解决方案有问题,或者有其他我不知道/想到的方法?
提前致谢.
编辑:根据我试过的评论SELECT abs(num) FROM MY_TABLE WHERE num like '%A%'
,它返回以下内容
12345678.0
Run Code Online (Sandbox Code Playgroud)
真奇怪.它似乎已经将字母出现的数字分开了.该文件声称如果它无法将其转换为数字,它将返回0.0.嗯..
是否有其他方法可以删除数据库表的所有行而无需编写SQL删除语句?
List<Item> items = Ebean.find(Item.class).findList();
Ebean.delete(items);
Run Code Online (Sandbox Code Playgroud)
有没有像
Ebean.deleteAll(Item.class)
Run Code Online (Sandbox Code Playgroud)
在Ebean API?
当我尝试删除Magento中的产品时,我得到了下一个错误,我不知道问题出在哪里.
SQLSTATE [22003]:数值超出范围:1690 BIGINT UNSIGNED值超出范围
product magento outofrangeexception mysql-error-1064 sql-delete
我有两个表,列数相同,没有主键(我知道,这不是我的错).现在我需要删除表B中存在的表A中的所有行(它们相等,每个行有30列).
我认为最直接的方法是做一个INNER JOIN并解决我的问题.但是,为所有列编写条件(担心NULL)并不优雅(可能因为我的表也不优雅).
我想用INTERSECT.我不知道该怎么办?这是我的第一个问题:
我试过(SQL Fiddle):
declare @A table (value int, username varchar(20))
declare @B table (value int, username varchar(20))
insert into @A values (1, 'User 1'), (2, 'User 2'), (3, 'User 3'), (4, 'User 4')
insert into @B values (2, 'User 2'), (4, 'User 4'), (5, 'User 5')
DELETE @A
FROM (SELECT * FROM @A INTERSECT SELECT * from @B) A
Run Code Online (Sandbox Code Playgroud)
但是所有行都从表中删除了@A.
这让我想到了第二个问题:为什么命令DELETE @A FROM @B会从表中删除所有行@A …
我正在使用MS SQL数据库,并且有一个名为“ Logs”的表,如下所示:

记录在这里一个接一个地添加,因此表在几天/几周后变得很大。
我需要定期进行的是一些清理工作。即我需要一个SQL查询,该查询将删除较旧的行并仅在此表中保留最近的100条记录。
我同意最好让它“删除早于some_date的记录” ...以前是这样的,但是客户希望它与众不同:(所以...在这里。
顺便说一句:我对人们对此问题持否定态度感到失望。有什么问题吗?... 想像一下:这个问题已经产生了4个答案!!!……一个人决定对此否定!现在我真的不知道该怎么想...周围的人很奇怪:(
我想在用户点击按钮时从我的用户表中删除一行,用户需要登录才能删除自己的帐户.
我已经回显了$ user_id,它显示了'4',这是登录用户的正确ID,所以user_id = $ user_id
这是我拥有按钮的页面,我想删除数据库中的用户行
<?php
include_once 'dbconfig.php';
if(!$user->is_loggedin())
{
$user->redirect('index.php');
}
$user_id = $_SESSION['user_session'];
if(isset($_POST['leave'])){
$stmt = $DB_con->prepare("DELETE FROM users WHERE user_id = $user_id ");
$stmt->execute();
}
$stmt = $DB_con->prepare("SELECT * FROM users WHERE user_id=:user_id");
$stmt->execute(array(":user_id"=>$user_id));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="style.css" type="text/css" />
<title>Welcome - <?php print($userRow['user_email']); ?></title>
</head>
<body>
<div class="header">
<div class="right">
<label><a href="logout.php?logout=true"><i class="glyphicon glyphicon-log-out"></i> logout</a></label>
</div>
</div>
<div class="content">
Welcome <?php print($userRow['user_name']); …Run Code Online (Sandbox Code Playgroud)