Mysql 在不更新任何表的情况下向列中临时添加逗号
我有两个表,并使用了一个简单的查询:Mysql 在不更新任何表的情况下向列中临时添加逗号,mysql,sql,Mysql,Sql,我有两个表,并使用了一个简单的查询: SELECT * FROM innerb where not exists (select * from wms where barcode = innerb.barcode) and pcode like '%102'; 我的结果如下: 我需要为所有值添加一个逗号,使其如下所示: 但我不想更新表,也不想创建新表,只想在几秒钟内添加它 有什么想法吗 SELECT pcode || ',' as pcode , brand || ','
SELECT * FROM innerb where not exists
(select * from wms where barcode = innerb.barcode) and pcode like '%102';
我的结果如下:
我需要为所有值添加一个逗号,使其如下所示:
但我不想更新表,也不想创建新表,只想在几秒钟内添加它
有什么想法吗
SELECT pcode || ',' as pcode
, brand || ',' as brand
FROM table
编辑:仅适用于某些数据库。显然不是MYSQL(除非您将其配置为工作)。
有一个在哪个数据库上工作的列表
编辑:仅适用于某些数据库。显然不是MYSQL(除非您将其配置为工作)。
有一个可以创建视图的DB的工作列表:
CREATE VIEW innerb_comma AS
SELECT CONCAT(Pcode, ',') AS Pcode,
CONCAT(Brand, ',') AS Brand,
CONCAT(Pdescription, ',') AS Pdescription,
CONCAT(Size, ',') AS Size,
CONCAT(Barcode, ',') AS Barcode
FROM innerb
WHERE NOT EXISTS (SELECT * FROM wms WHERE barcode = innerb.barcode)
AND Pcode like '%102';
然后从中选择:
SELECT * FROM innerb_comma
您可以创建一个视图:
CREATE VIEW innerb_comma AS
SELECT CONCAT(Pcode, ',') AS Pcode,
CONCAT(Brand, ',') AS Brand,
CONCAT(Pdescription, ',') AS Pdescription,
CONCAT(Size, ',') AS Size,
CONCAT(Barcode, ',') AS Barcode
FROM innerb
WHERE NOT EXISTS (SELECT * FROM wms WHERE barcode = innerb.barcode)
AND Pcode like '%102';
然后从中选择:
SELECT * FROM innerb_comma
什么是视图?我可以看到,在屏幕左侧的导航器中,我的模式中有一个新视图。我该如何删除它呢?视图只允许您创建一种不同的方式来查看表中的数据。例如,您可以对其中的一些列求和,或者将它们相乘。它对实际的表没有影响。您可以使用
下拉视图innerb_逗号
将其删除。请参阅@Eduards,我已更正视图定义。由于您正试图将条形码
与wms
表中的值(该表没有添加逗号)进行比较,因此整个查询需要在视图中。我还添加了一个演示,他不需要该视图,他只需在该视图定义中执行嵌入式SQL,它就会返回他需要的内容。@LasseVågsætherKarlsen同意。如果OP需要多次执行查询,视图会使查询更容易。什么是视图?我可以看到,在屏幕左侧的导航器中,我的模式中有一个新视图。我该如何删除它呢?视图只允许您创建一种不同的方式来查看表中的数据。例如,您可以对其中的一些列求和,或者将它们相乘。它对实际的表没有影响。您可以使用下拉视图innerb_逗号
将其删除。请参阅@Eduards,我已更正视图定义。由于您正试图将条形码
与wms
表中的值(该表没有添加逗号)进行比较,因此整个查询需要在视图中。我还添加了一个演示,他不需要该视图,他只需在该视图定义中执行嵌入式SQL,它就会返回他需要的内容。@LasseVågsætherKarlsen同意。如果OP需要多次执行查询,视图会使查询更容易。|
是一个或
,该如何添加逗号?而不是在SQL中。|基本上和CONCAT是一样的,只是更短,在我看来,更具可读性。在不同的数据库中可能会有所不同,但我认为这很常见。我在评论中链接了MySQL的文档,也在dbfiddle中尝试过,它的行为类似于OR。似乎Oracle和PostgreSQL|
作为连接运算符,但OP使用MySQL接受的答案,其中声明了MySQL:concat(vararg函数)。注意:| |表示“逻辑或”。注意,您可以将MySQL配置为使用|
作为concat操作符,但默认情况下它是或操作符|
是或,这应该如何添加逗号?不是在SQL中基本上和CONCAT是一样的,只是更短,在我看来,更具可读性。在不同的数据库中可能会有所不同,但我认为这很常见。我在评论中链接了MySQL的文档,也在dbfiddle中尝试过,它的行为类似于OR。似乎Oracle和PostgreSQL|
作为连接运算符,但OP使用MySQL接受的答案,其中声明了MySQL:concat(vararg函数)。注意:| |表示“逻辑或”。注意,您可以将MySQL配置为使用|
作为concat操作符,但默认情况下它是或操作符