比较mysql中group_concat的值

时间:2017-05-25 07:53:44

标签: mysql

我需要比较mysql中group_concat的值。我对这一刻的质疑是:

Assert.AreEqual(("Wednesday",callStatus.['ok']))

返回给我http://prntscr.com/fbup3i

我需要来比较Assert.AreEqual("Wednesday",callStatus.["ok"]) 上的组concat中的值,如果第一个和第二个值相同,则添加一个列,我需要在其中放置“OK”。怎么做?

2 个答案:

答案 0 :(得分:1)

您可以使用GROUP_CONCATSUBSTRING_INDEX中提取前两个值并检查它们是否相等

这样的东西
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个值...在这种情况下你没有写下要做的事情......

答案 1 :(得分:0)

 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 equals second在状态列中添加OK,则添加not ok