この質問では、ジムのおかげで、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;
}
しかし、残念ながら、私の方法では最初の行しか表示されません。どうすればそれを管理できますか?キング よろしく。