如何在sql中编写update查询来更新具有不同where条件的多行?例如,如果我想用不同的id更改特定表的100行的名称?
update table set name = 'value1' where id=1,
set name ='value2' where id=2;
但就像这样,我不能写100个条目。。有什么帮助吗?
当使用同一表上的其他数据集应用条件(小于符号)更新一组数据时,我会出错。有人能帮帮我吗。
以下是我的神谕查询-
UPDATE TABLE
SET COLUMN1 = 1
WHERE COLUMN2 = 'Y'
AND COLUMN3 = 'N'
AND TRUNC(COLUMN4) <
(SELECT TRUNC(COLUMN4)
FROM TABLE
WHERE COLUMN3 = 'Y' AND COLUMN4 = 'Y')
错误如下-
我试图将多个值插入到postgresql中不同表中的表中,并遇到一个错误( 21000: ERROR:由用作表达式的子查询返回的多行)。
INSERT INTO coupon (id,entityid)
values
(select nextval('seq_coupon')),(select entityid from card where country in ('China')));
此查询从卡中选择实体in,其中国家(‘中国’)有多行。
任何帮助都是非常感谢的。
我有一个包含SQL的文件,它很少有create命令,后面跟着表/列上的一些注释。文件文本如下所示
create table abc
(col1, ..,..);
comment on table abc is 'This is a single line comment';
comment on column abc.col1 is 'This is a multi-line comment.
One more line of description here';
comment on column abc.col2 is 'This is a sin
我在MySql 5.7中遇到了一个问题,当我使用FOR UPDATE选择14行或更多行时,整个表都会被锁定。即使我通过主键选择它们(因此,它是索引的和唯一的)。从字面上看,它是这样的。当我运行此查询时: select * from mytable
where id in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
for update; 一切正常,只有选定的行会被锁定。但是这个查询: select * from mytable
where id in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
f
我想预先填充我的数据库。因此,我从浏览器中生成SQL查询,并编写代码将它们插入到db中。对于单行查询,它运行良好,但大多数插入查询都有多行,例如`
INSERT INTO `poem` VALUES (780,'سلام القلب واشواقه
من قلب يحب مجنونه
ياليت هالقلب يحن
ويقول هالدنيا
ماتسوى دون *_*','0',NULL);`
我的要求是把它们按原样插入。这是我为多行编写的方法(适合于单行查询)。
public static int countLines(InputStr
我为用户设置了一个操场MySQL数据库,我希望防止多行(大)插入。也就是说,如果在INSERT操作后将出现N行以上,则引发错误并不执行语句。由于INSERT本身可能“很重”,所以我希望在执行该查询之前将其删除。
我不知道MySQL只支持FOR EACH ROW,但我想到的是BEFORE INSERT FOR EACH STATEMENT触发器,它可以计数要插入的行,和表的行数,如果sum超出允许的数,则使用SET SIGNAL。问题是,我不知道如何获得要插入的行数,特别是当用户启动INSERT INTO ... SELECT ...语句时。
我还能选择什么方法呢?
我有一个HTML表单,它是多行的,并将多行文本插入到SQL字段。该值被正确地存储在带有多行的SQL表中,但是当我试图在HTML中显示它时,格式不是多行。示例:
Multi
Line
Test
变成- Multi Line Test
我的HTML代码是:
<p><?php echo htmlspecialchars($aboutme); ?></p>
我没有任何影响段落标签的CSS格式。
我对SQL很陌生,我一直在使用一个查询。
我有3张桌子--雇员、部门和salary_paid。我试图通过提供以下条件来更新salary_paid表中的奖金列
give 10% bonus on total salary to the employees who are not in IT departments.
我想出了这个问题
update salary_paid
set bonus=(select (0.1*total_salary) "Bonus"
from salary_paid, departments, employees
我需要找到表中每个ID的最后一行,其中指示为"Yes“,然后在同一个表中搜索该ID的下一个实例,以确保该条目为"No”。目前,这在与php foreach结合使用的查询中工作得很好,该php foreach在第二个where子句中使用第一个查询的结果。数据集只有3000多行,整个过程在4分钟多一点的时间内就完成了,效率非常低。
我知道只有在我只有一个Where标准的情况下,我才能使用sql做到这一点,但由于我有两个Where标准,我似乎遇到了困难,并感谢我能得到的任何帮助。
提前谢谢。
//Get max dispatchID where Available = 'Ye
我正在使用MySQL工作台将一些巨大的(数百万行) MyISAM表更改为InnoDB。在克隆表之后,我通过ALTER TABLE...和INSERT INTO othertable SELECT * FROM mytable进行了尝试,但似乎表太大了。工作台因与服务器连接丢失而退出.
因此,我想我可以创建一个SQL脚本,它可以遍历大约10000个条目,并将MyISAM表的内容以块的形式复制到InnoDB表中。
由于似乎没有for循环SQL,所以我想知道是否有人建议如何实现这一点?
INSERT INTO `latest`.`AUTHORS` (author_id, author_name)
S
我正在尝试构建一个SQL查询,该查询可以从不同的表中随机选择条目,最多可以选择一定数量的条目。
假设我有3个表A、B和C。我想从A、B和C中选择10行。
现在,我想从A中随机选择2个条目,从B中最多选择6个条目(取决于从A检索了多少行,如果A没有任何行,我希望从B中获得6行)。如果A返回了1行,我想从B获得5行,等等。然后,我想用随机选择的C行填充其余的条目(在0到10之间,这取决于前面的子查询)。到目前为止,我尝试了:
select * from (
(SELECT * FROM A ORDER BY RAND() LIMIT 2)
UNION
(SELECT * FROM B ORDER
SQL控制台
select trunc((:FromDate)+1)-rn as date_Val
from ( select rownum rn
from dual
connect by level <= ((:FromDate)-(:todate))+1)
order by trunc(:FromDate)-rn
我想将此列与其他表联接。当我写入子查询返回时,显示多行错误