2

この質問では、ジムのおかげで、2 つの列に同じ値を持つ 2 つの行を結合してください。しかし、Windowsフォームアプリケーションで以下のコードを使用しなかったため、連結が実現しませんでした。MySQLコードは次のとおりです。

 SELECT MIN(id),
       fikraNo,
       maddeNo,
       GROUP_CONCAT(icerik ORDER BY id DESC SEPARATOR ' ')
FROM `table`
GROUP BY fikraNo, maddeNo 

そして、MySQLを使用した私の検索方法は次のとおりです。

public static DataTable Results(string table, string columns, string words)
{
    var sb = new StringBuilder();
    //var pm = new SqlParameter();

    sb.Append("SELECT MIN(id) AS minID, name, surname, GROUP_CONCAT(events ORDER BY id ASC SEPARATOR ' ') AS allEvents FROM " + table + " ");
    if (!string.IsNullOrEmpty(words))
    {
        var column = columns.Split('+');
        for (var i = 0; i < column.Length; i++)
        {
            if (i == 0)
            {
                var word = words.Split(',');
                for (var j = 0; j < word.Length; j++)
                {
                    if (j == 0)
                    {
                        // one column, one word...
                        sb.Append("WHERE " + column[i].Trim() + " LIKE '%" + Strip(word[j].Trim()) + "%'");
                        //pm = new SqlParameter("@word", "%" + word[j].Trim() + "%");
                    }
                    else
                    {
                        // one column, more words..
                        sb.Append(" OR " + column[i].Trim() + " LIKE '%" + Strip(word[j].Trim()) + "%'");
                        //pm = new SqlParameter("@word", "%" + word[j].Trim() + "%");
                    }

                }
            }
            else
            {
                var word = words.Split(',');
                for (var j = 0; j < word.Length; j++)
                {
                    if (j == 0)
                    {
                        // more columns, one word...
                        sb.Append(" OR " + column[i].Trim() + " LIKE '%" + Strip(word[j].Trim()) + "%'");
                        //pm = new SqlParameter("@word", "%" + word[j].Trim() + "%");
                    }
                    else
                    {
                        // more columns, more words...
                        sb.Append(" OR " + column[i].Trim() + " LIKE '%" + Strip(word[j].Trim()) + "%'");
                        //pm = new SqlParameter("@word", "%" + word[j].Trim() + "%");
                    }

                }
            }
        }
    }
    sb.Append(" GROUP BY name, surname");

    var dt = SetDataset(CommandType.Text, sb.ToString(), null).Tables[0];
    return dt;
}

しかし、残念ながら、私の方法では最初の行しか表示されません。どうすればそれを管理できますか?キング よろしく。

4

0 に答える 0