Mysql 连接几行
Mysql concat severals rows
使用 Mysql
并尝试使用 CONCAT_WS
连接多行,但我没有得到所需的输出。
我的 table testtable
具有以下结构:
vardel1 int(50)
vardel2 int(50)
ComputeVariant varchar(50)
+----------+-------------------+----------------+
| vardel1d | vardel2 | ComputeVariant |
+----------+-------------------+----------------+
| 167 | 181 | NULL |
+----------+-------------------+----------------+
与我的 testtable
我正在与另一个 table (posnucleo
) 进行连接以计算值,2235
和 2249
。
我想要的输出在 ComputeVariant
列中是:
c.2235_2249del
我的 sql 查询如下:
update testtable, posnucleo
set testtable.ComputeVariant = CONCAT_WS( CONCAT('c.', abs(((posnucleo.1stpos - posnucleo.1stnuclocode) - testtable.vardel1 )) ), CONCAT('_',abs(((posnucleo.1stpos - posnucleo.1stnuclocode) - testtable.vardel2 )),'del' ) )
where testtable.Reference = posnucleo.amplicon
我的问题是没有所需的输出。我也尝试用 ||
连接,但它似乎也不起作用。 GROUP_CONCAT
也不行。
你知道如何解决我的问题吗?
首先,使用明确的 join
语法和 table 别名,您的查询将更易于阅读。
我认为您将字符串连接过于复杂了。您可以将多个参数传递给 concat()
,如下所示:
update testtable tt join
posnucleo pn
on tt.Reference = pn.amplicon
set tt.ComputeVariant = CONCAT('c.',
abs((pn.1stpos - pn.1stnuclocode) - tt.vardel1 ) ),
'_',
abs((pn.1stpos - pn.1stnuclocode) - tt.vardel2 ),
'del'
);
使用 Mysql
并尝试使用 CONCAT_WS
连接多行,但我没有得到所需的输出。
我的 table testtable
具有以下结构:
vardel1 int(50)
vardel2 int(50)
ComputeVariant varchar(50)
+----------+-------------------+----------------+
| vardel1d | vardel2 | ComputeVariant |
+----------+-------------------+----------------+
| 167 | 181 | NULL |
+----------+-------------------+----------------+
与我的 testtable
我正在与另一个 table (posnucleo
) 进行连接以计算值,2235
和 2249
。
我想要的输出在 ComputeVariant
列中是:
c.2235_2249del
我的 sql 查询如下:
update testtable, posnucleo
set testtable.ComputeVariant = CONCAT_WS( CONCAT('c.', abs(((posnucleo.1stpos - posnucleo.1stnuclocode) - testtable.vardel1 )) ), CONCAT('_',abs(((posnucleo.1stpos - posnucleo.1stnuclocode) - testtable.vardel2 )),'del' ) )
where testtable.Reference = posnucleo.amplicon
我的问题是没有所需的输出。我也尝试用 ||
连接,但它似乎也不起作用。 GROUP_CONCAT
也不行。
你知道如何解决我的问题吗?
首先,使用明确的 join
语法和 table 别名,您的查询将更易于阅读。
我认为您将字符串连接过于复杂了。您可以将多个参数传递给 concat()
,如下所示:
update testtable tt join
posnucleo pn
on tt.Reference = pn.amplicon
set tt.ComputeVariant = CONCAT('c.',
abs((pn.1stpos - pn.1stnuclocode) - tt.vardel1 ) ),
'_',
abs((pn.1stpos - pn.1stnuclocode) - tt.vardel2 ),
'del'
);