Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较mysql中组_concat的值_Mysql - Fatal编程技术网

比较mysql中组_concat的值

比较mysql中组_concat的值,mysql,Mysql,我需要比较mysql中组_concat的值。我现在的问题是: SELECT it.Nr_Inwentarzowy, GROUP_CONCAT(it.Nazwa), GROUP_CONCAT(it.U_ytkownik), GROUP_CONCAT(it.Pok_j), COUNT(*), GROUP_CONCAT(z.Nr_inwentarzowy), z.Nazwa_maj_tku FROM intaktual

我需要比较mysql中组_concat的值。我现在的问题是:

SELECT it.Nr_Inwentarzowy,
       GROUP_CONCAT(it.Nazwa),
       GROUP_CONCAT(it.U_ytkownik),
       GROUP_CONCAT(it.Pok_j),
       COUNT(*),
       GROUP_CONCAT(z.Nr_inwentarzowy),
       z.Nazwa_maj_tku
FROM intaktualny AS it
JOIN zestawycsv AS z
WHERE it.Nr_Inwentarzowy = z.Nr_inwentarzowy
GROUP BY (it.Nr_Inwentarzowy)
这是我的回报

我需要比较
group_concat(it.u_ytkownik)、group_concat(it.pok_j)
上的group concat值,如果第一个值和第二个值相同,则添加一列,我需要在其中输入“OK”。怎么做

 select if(first=second,"ok", "not okay") as status,* from (
 SELECT it.Nr_Inwentarzowy,
   GROUP_CONCAT(it.Nazwa),
   GROUP_CONCAT(it.U_ytkownik) as first,
   GROUP_CONCAT(it.Pok_j) as second,
   COUNT(*),
   GROUP_CONCAT(z.Nr_inwentarzowy),
   z.Nazwa_maj_tku
FROM intaktualny AS it
JOIN zestawycsv AS z
WHERE it.Nr_Inwentarzowy = z.Nr_inwentarzowy
GROUP BY (it.Nr_Inwentarzowy)
) as alias

如果
first等于second
在status列中添加
OK
,否则添加
notok

您可以使用
子字符串索引从
组的CONCAT
中提取前两个值,并检查它们是否相等

差不多

SELECT it.Nr_Inwentarzowy,
       GROUP_CONCAT(it.Nazwa),
       GROUP_CONCAT(it.U_ytkownik),
       GROUP_CONCAT(it.Pok_j),
       COUNT(*),
       GROUP_CONCAT(z.Nr_inwentarzowy),
       IF(
         SUBSTRING_INDEX(GROUP_CONCAT(it.U_ytkownik), ',', 1) = 
         SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(it.U_ytkownik), ',', 2),  ',', -1), 
       'OK', 'NOT OK')
       z.Nazwa_maj_tku
FROM intaktualny AS it
JOIN zestawycsv AS z
WHERE it.Nr_Inwentarzowy = z.Nr_inwentarzowy
GROUP BY (it.Nr_Inwentarzowy)

**注意:如果少于2个值,此代码将打印“OK”。。。你没有写下在这种情况下该怎么办

你的问题不清楚。。。你能举例说明输入和期望的输出吗?输入是:代码、计算机部件的名称、用户和房间。我的问题是:如果它们不相等?你想把任何价值@MarcinGąsiorekI认为,我可以把“不正常”放在那里,我有代码,分配给不同的部分。将零件分配给用户。用户被分配到房间。当组_concat中的用户和房间相同时,我需要添加列“approved”并将其置于“ok”位置。否则,我需要添加列“未批准”,并将其置于“不确定”位置。这显示在上面的链接中。@MarcinGąsiorek是的,这是一种类型。现在检查一下,你的“*from”旁边的语法有问题(-我使用的是phpmyadminWhat是e.FName?而且,我的代码只在一列上检查这一点,应该很容易在两列上都进行检查…好的,它可以工作。当值少于2时,打印“not ok”。你能@YossiVainshtein吗?如果有3个值,那么把“not ok”放在ok上,明白了吗;)谢谢!