我在我的MySQL数据库“用户”中找到了这个表。它有字段'id‘和'value’。
现在,我想用一个SQL查询更新这个表中的许多行,但是许多行应该得到不同的值。目前,我使用的是:
UPDATE users
SET value = CASE id
WHEN 1 THEN 53
WHEN 2 THEN 65
WHEN 3 THEN 47
WHEN 4 THEN 53
WHEN 5 THEN 47
END
WHERE id IN (1,2,3,4,5)
这个很管用。但是我觉得我可以做一些优
我需要创建一条SQL语句来将多行连接到一列中。我有三个表格,如下所示。我需要加入他们,以获得每种产品的1行(即按products.id分组)。
在products_images表中,每个产品最多可以有6个图像。我需要为每个图像的列,即使没有产品图像。
Products Table
---
id
product_name
supplier_id
Suppliers Table
---
id
company_name
Product Images Table
---
id
product_id
fullsize
下面是我正在尝试实现的一个示例转储:
id product_name c
我知道T-SQL,但对MySQL来说还是个新手。我真的很想做这样的事情,可能使用子查询,可能是临时表,可能是在例程中。每个select的结果都有多行不同的行数。
create procedure procname
select col1 into @var1 from t1 inner join t2 on t1.id = t2.id where t2.col2 = 1;
select col1 into @var2 from t1 inner join t2 on t1.id = t2.id where t2.col2 = 2;
select col1 into @var3 from t1
我使用dbeaver连接到Mariadb。当我试图运行多行更新语句时,例如
update x set warehouse_id='WH02' where soh_id='f0b4d220';
update x set warehouse_id='WHU1' where soh_id='17482705';
我得到了“由:java.sql.SQLSyntaxErrorException引起的错误:您的SQL语法中有一个错误;检查与您的MariaDB服务器版本对应的手册,以获得使用”.“的正确语法。”如果我对在MySQL工作台中创建的
我有一个sql查询,对我来说,这个查询看起来不错,但我得到了一个错误。错误是:
ProgrammingError: 1064 (42000):您的SQL语法出现了错误;请检查与MySQL服务器版本相对应的手册,以获得正确的语法,以便在第1行使用靠近国家的“as区域”作为c内连接country_translation AS t ON c.id = t.cou‘
查询是:
query = "SELECT DISTINCT c.id, c.shortname, c.name, (CASE WHEN rt.name is NULL then '' else rt.nam
跟进。
更新2列中的多行最有效的查询是什么?
UPDATE example_table SET variable1 = 12 WHERE id=1;
UPDATE example_table SET variable2 = 'blue' WHERE id=1;
UPDATE example_table SET variable1 = 42 WHERE id=2;
UPDATE example_table SET variable2 = 'red' WHERE id=2;
UPDATE example_table SET variable1 = 32 WHER
我有一个SQL查询,它使用group by语句返回记录。但是,有时1列将具有不同的值,并返回多行,而不是像Group By那样返回单行。
从表中选择ID、部门、团队按ID、部门、团队分组
----------------------------------------
ID Division Team
20 Div 1 2
20 Div 2 2
20 Div 3 2
----------------------------------------
我想让查询显示以下内容
-------
在sql查询方面,我是个菜鸟,我只使用了基本的SELECT、UPDATE、DELETE语句。现在,我需要更新垂直表中的许多行(50+),并运行如下语句:
UPDATE `postmeta` SET meta_value = 'John' WHERE `meta_key` = 'name' AND `post_id` = 29230;
UPDATE `postmeta` SET meta_value = 'Johnson' WHERE `meta_key` = 'last_name' AND `post_id` = 29230;
U
在SAS中
我有一个proc-sql步骤,用来创建宏变量来执行一些列表处理。
我遇到了一个令人困惑的步骤,使用case语句而不是where语句会导致结果数据集的第一行是空字符串('')
这两个表中的任何一个字段中都没有包含空字符串。
以下是两个示例SQL步骤,为了简单起见,去掉了所有的宏业务:
create table test as
select distinct
case
when brand in (select distinct core_brand from new_tv.co
我试图编写一个包含SELECT的解码语句,如下所示:
SELECT DECODE(A.name, (SELECT name FROM B WHERE id IN (1000,1001)),'Value1','Value2') FROM A
显然,如果我的select语句在解码中返回多行,我将得到一个异常"ORA-01427:单行子查询返回多行“。这是很公平的。
我希望那里有多个行,这就是目的,我需要为与A.name和Value2匹配的所有条目显示A.name和Value2,比如foreach循环,但在解码内部。
什么是正确的方法?
更新:表A:
+---
我想做一个查询,它会根据满足的条件添加一个列(我已经尝试了sequelize,但没有得到我想要的结果),因此我想尝试使用纯SQL,因为它没有太多的限制。 示例:SELECT * FROM db.messages WHERE user_id = userID OR $contacts.user_id$ = userID 如果第一个条件是满足,我想添加一个列,如下所示: SELECT *,'type' as 'Inbox' FROM db.messages 第二个条件: SELECT *,'type' as 'Send' FROM
我为mysql的视图编写了一个sql case条件查询,但得到了错误:
#1064 - You have an error in your SQL syntax;error at AS `total_amount_paid`, at line 3
以下是我的代码:
create or replace ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vw_customer_payment_status` AS select `p`.`customer_id` AS `customer_id`,
c
假设我有一个表users,我想将foo字段设置为用于id in (1,5,10)的用户的"bar"和用于id in (3,8,15)的用户的"qux",并且通常我可能有更多的值和更多的i组来匹配每个值。
目前(在我选择的脚本语言中),我正在遍历foo的值对和in组,如下面(伪代码)
for(val, ids) in my_array
execute_sql("update users set foo = '#{val}' where id in (#{ids.join(',')})")
end
我是否可以在一个
你好,伙计们,我需要在一个sql查询中使用mutiple子句,如下所示,但是它不能工作,请帮助我。
select (select count(total) as 'studentMarks1' from School where total <60 ),
(select count(total) as 'studentMarks2' from School where total >80 )
from School
where Id = '8'
我目前表格的样本:
ID类型
1 A
1 B
[2]A
2 B
2 C
期望产出:
ID一二三
1 A B零
2 A、B、C
基本上,我希望将列类型中的值转换为新列(1、2、3等)。并将值输入到这些列中。每个ID将只有一行而不是多行。
由于perm限制,我无法在SQL中使用PIVOT语句,但是有其他方法可以在SQL或Excel中创建这个语句吗?
我有一个简单的sql语句,我想根据返回的行数执行不同的操作。
$result_lists = mysql_num_rows(mysql_query("SELECT * FROM db_table"));
//To see the number returned
print_r($result_lists);
switch($result_lists) {
case($result_lists == 0):
//To prove which option is actually happening
我有这样的疑问:
SELECT TOP 3
A.Id,
A.NAME as Name,
B.Rate as PayRate,
C.Description as Currency
FROM
TABLEA A
JOIN
TABLEB B ON A.id = B.TableAId
JOIN
TABLEC C ON B.Id = C.TableBId
WHERE
TABLEA.FieldX = 1
AND TABLEB.FieldX = 3
这将返回类似以下内容的结果:
Id Name PayRate
我有一个包含3列的表: Id、Price、Total。我正在编写这条sql语句:
SELECT Id, Price, Total,
CASE WHEN [Total] IS NULL THEN '0'
WHEN [Total] IS NOT NULL '1'
ELSE ''
END AS NewColumnName
FROM Table
如果我运行这个sql,我不会出错。但是如果我添加一个Where,就像这样: WHERE NewColumnName= '1‘服务器返回一个错误: NewColumnName列的名称无
嘿,伙计们,我是mysql的新手.我写了一段代码
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1,
我正试着加入两张桌子。表中有一个列,但另一个列是派生列。
event_date - exists directly in the table
deploy_date - derived using case statement
请参阅原始查询中的第6行。
1 SELECT ab.id,
2 ab.event_date,
3 CASE
4 WHEN ab.label = 'ABC' THEN ab.event_date
5
当我试图得到反馈项目时,我只收到第一栏,为什么?
SELECT
u.firstname as "Usuario",
CASE WHEN i.name = 'task 1' THEN v.value END AS "1",
CASE WHEN i.name = 'task 2' THEN v.value END AS "2",
CASE WHEN i.name = 'task 3' THEN v.value END AS "3",
CASE WHEN i.name =
我的mysql表如下:
id value
1 10
2 20
3 30
4 40
5 50
有两个are :开始和结束,我想要的是这样:
when start=end, the result is 0
when start>end, the result is 'sum(value) where id<=start and id>end'
when start<end, the result is 'sum(value) where id>start and id<=
我想知道我如何做到这一点: 我有一个包含数十列的Mysql表,我想要更新它。但此更新涉及单行的所有列。因此,我需要更新该特定行的每一列,以便如果它们的值大于引用,则它们应该减去1。 到目前为止,我只能想出这样的东西,但很明显,这是一种异端: $sql= mysqli_query($con,"UPDATE table SET columnA = columnA-1 WHERE (columnA > ".$val." AND id = 1 ");
$sql= mysqli_query($con,"UPDATE table SET co
我有一个表(table1),它有2列、id、和、name、,下面是表中的数据。
--输入表--
id name
1 | ABC
2 | XYZ
3 | DEF
我想要写SQL,这将给输出,如下所述
输出列为id、col1、col2和col3及以下是列中所期望的值。
1真假假
2假真假
3假假
现在,我想根据上面的输出编写一个SQL。
我使用用SQL编写的CASE语句编写了一个SQL,但是我知道应该有更好的方法来编写这个SQL并获得输出。
我的SQL:
select id, CASE WHEN NAME ='XYZ' THEN 'TR
我对SQL查询有一个问题。
这是我的产品表:
产品
·id
·姓名
·价格
·过期
·fk_category
我想要过期产品的数量和按类别分类的产品总数。
我编写了以下查询,很难完成它:
SELECT COUNT(id) as nb_expired, COUNT (id) as nb_product
FROM product
WHERE expired = 1
GROUP BY fk_category;
你能帮帮我吗?
我想将一个变量名连接到我的SQL查询中,用于order by,如下所示。 我基本上不想使用动态sql、exec和sp_executesql。 DECLARE @Order VARCHAR(1000) SET @Order = 'CO_ID DESC‘print @Order select * From contact where co_username= 'sandeepshm’order by @Order+@Order select * From contact where co_username= 'sandeepshm‘order by CO_ID DESC