Tôi nghĩ rằng cách tốt nhất để làm điều này là sử dụng mã PHP, thay vì sử dụng SQL.
Bạn có thể đạt được điều này bằng cách chỉ cần tạo một mảng kết hợp trong PHP, sử dụng trường "văn bản" làm khóa, chứa dữ liệu bạn muốn - và điền dữ liệu đó khi bạn lấy thông tin từ cơ sở dữ liệu.
Một ví dụ:
SQL:SELECT * FROM myTable
Mã PHP:
<?php
// Connect to MySQL database
$result = mysql_query($sql_query_noted_above);
$stringsInfo = array();
while ($row = mysql_fetch_assoc($result))
{
if (!isset($stringsInfo[$row['text']]))
{
$stringsInfo[$row['text']] = array('types' => array(), 'idAccounts' => array());
}
$stringsInfo[$row['text']]['types'][] = $row['type'];
$stringsInfo[$row['text']]['idAccounts'][] = $row['idAccount'];
}
?>
Điều này sẽ cung cấp cho bạn một mảng như sau:
'myTextString' => 'types' => 'type1', 'type2', 'type3'
'idAccounts' => 'account1', 'account2'
'anotherTextString' => 'types' => 'type2', 'type4'
'idAccounts' => 'account2', 'account3'
và như vậy.
Tôi hy vọng điều đó hữu ích.
CHỈNH SỬA:Người đăng đã yêu cầu trợ giúp về hiển thị.
<?php
foreach ($stringsInfo as $string => $info)
{
echo $string . '<br />';
echo 'Types: ' . implode(', ', $info['types']); // This will echo each type separated by a comma
echo '<br />';
echo 'ID Accounts: ' . implode(', ', $info['idAccounts']);
}
/ * Ngoài ra, bạn có thể lặp lại từng mảng có trong $ info nếu bạn cần kiểm soát nhiều hơn * /
foreach ($stringsInfo as $string => $info)
{
echo $string . '<br />';
echo 'Types: ';
foreach ($info['types'] as $type)
{
echo $type . ' - ';
}
echo '<br />';
echo 'ID Accounts: '
foreach ($info['idAccounts'] as $idAccount)
{
echo $idAccount . ' - ';
}
}