Hướng dẫn mysql array to comma separated string - mảng mysql thành chuỗi được phân tách bằng dấu phẩy

Trong 1 năm rưỡi cuối cùng, tôi đã cố gắng lưu trữ ID 16 hàng vào một chuỗi và tách mỗi ID bằng dấu phẩy. Mảng tôi nhận được là từ mysql. Lỗi tôi nhận được là

Chức năng Iliate []: Thông qua các đối số không hợp lệ

$str=array[];
$string="";
while[$row = mysql_fetch_row[$result]] 
{
    $user_id=$row;
    $str=$user_id;
    foreach[$str as $p=>$v]{
        comma[$v];
    }
}

function comma[$v]{
    $string= implode[",",$v]; echo $string;
}

Shawn Mehan

4.4639 Huy hiệu vàng30 Huy hiệu bạc 50 Huy hiệu Đồng9 gold badges30 silver badges50 bronze badges

Đã hỏi ngày 22 tháng 7 năm 2012 lúc 11:32Jul 22, 2012 at 11:32

5

Hãy thử một cái gì đó như thế này:

$ids = array[]; 
while [$row = mysql_fetch_assoc[$result]]  
{
    $ids[] = $row["UserID"]; 
} 
echo implode[", ", $ids];

Thay thế

$ids = array[]; 
while [$row = mysql_fetch_assoc[$result]]  
{
    $ids[] = $row["UserID"]; 
} 
echo implode[", ", $ids];
4 bằng tên cột của ID trong bảng của bạn.

Vì vậy: Đầu tiên bạn xây dựng mảng, tiếp theo bạn nổ mảng thành một chuỗi.

Đã trả lời ngày 22 tháng 7 năm 2012 lúc 11:40Jul 22, 2012 at 11:40

Huysentruitwhuysentruitwhuysentruitw

26.6K9 Huy hiệu vàng86 Huy hiệu bạc129 Huy hiệu đồng9 gold badges86 silver badges129 bronze badges

0

Có giải pháp của tôi:

SELECT GROUP_CONCAT[UserID] as string  FROM Users;

Đối với chức năng này, dấu phân cách là ',' theo mặc định.

Đã trả lời ngày 5 tháng 8 năm 2016 lúc 22:26Aug 5, 2016 at 22:26

$query = 'SELECT id FROM your_table';
$rs = mysql_query[$query];

$row = mysql_fetch_array[$result];
return implode[',', $row];

Kết quả 1,2,3 ...

Đã trả lời ngày 11 tháng 5 năm 2017 lúc 12:17May 11, 2017 at 12:17

DarwindarwinDarwin

522 Huy hiệu bạc8 Huy hiệu Đồng2 silver badges8 bronze badges

Chia các giá trị phân tách dấu phẩy và lấy một giá trị ở vị trí nhất định

Đáng ngạc nhiên là MySQL không có chức năng dành riêng cho các hoạt động này trái ngược với Split_Part trong PostgreSQL. May mắn thay, nó có chức năng Subring_index [] mà gần như những gì chúng ta cần.

Từ tài liệu chính thức:

$ids = array[]; 
while [$row = mysql_fetch_assoc[$result]]  
{
    $ids[] = $row["UserID"]; 
} 
echo implode[", ", $ids];
5

Trả về chuỗi con từ String Str trước khi tính toán của DELIM DELIMITER. Nếu số lượng là tích cực, mọi thứ ở bên trái của dấu phân cách cuối cùng [đếm từ bên trái] được trả về. Nếu số lượng là âm, mọi thứ ở bên phải của dấu phân cách cuối cùng [đếm từ bên phải] được trả về.

$ids = array[]; 
while [$row = mysql_fetch_assoc[$result]]  
{
    $ids[] = $row["UserID"]; 
} 
echo implode[", ", $ids];
6 thực hiện một trận đấu nhạy cảm trường hợp khi tìm kiếm Delim.

mysql> SELECT SUBSTRING_INDEX['www.mysql.com', '.', 2];
        -> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX['www.mysql.com', '.', -2];
        -> 'mysql.com'

Chức năng này là multibyte an toàn.

Định nghĩa

CREATE TABLE employees [
   id SERIAL,
   name VARCHAR[255],
   address TEXT,
   PRIMARY KEY [id]
];

INSERT INTO employees [id, name, address] VALUES 
[1, 'John Doe', '4225 Collins Street,Apt. A,Erie,PA,16510'],
[2, 'Bob Smith', '234 Main Street,,Erie,PA,16512'];

Dung dịch

Giả sử chúng tôi muốn tìm tất cả nhân viên làm việc ở một trạng thái nhất định [ví dụ:

$ids = array[]; 
while [$row = mysql_fetch_assoc[$result]]  
{
    $ids[] = $row["UserID"]; 
} 
echo implode[", ", $ids];
7] là trường thứ tư trong một địa chỉ giữ cột dưới dạng các giá trị được phân tách bằng dấu phẩy.

Với chức năng

$ids = array[]; 
while [$row = mysql_fetch_assoc[$result]]  
{
    $ids[] = $row["UserID"]; 
} 
echo implode[", ", $ids];
8, chúng tôi sẽ có thể trích xuất mọi thứ lên đến cột thứ tư chứa trạng thái

SELECT SUBSTRING_INDEX[address, ',', 4] FROM employees;
+-----------+------------------------------------+
| name      | SUBSTRING_INDEX[address, ',', 4]   |
+-----------+------------------------------------+
| John Doe  | 4225 Collins Street,Apt. A,Erie,PA | 
| Bob Smith | 234 Main Street,,Erie,PA           | 
+-----------+------------------------------------+

Bây giờ chúng ta biết rằng trạng thái sẽ luôn là trường cuối cùng trong giá trị kết quả. Vì hàm

$ids = array[]; 
while [$row = mysql_fetch_assoc[$result]]  
{
    $ids[] = $row["UserID"]; 
} 
echo implode[", ", $ids];
6 cho phép sử dụng các giá trị âm để trích xuất các trường đếm từ bên phải, chúng tôi sẽ sử dụng khả năng này để trích xuất trường ngoài cùng có chứa chữ viết tắt trạng thái.

SELECT name, SUBSTRING_INDEX[SUBSTRING_INDEX[address, ',', 4], ',', -1] AS state FROM employees;
+-----------+-------+
| name      | state |
+-----------+-------+
| John Doe  | PA    | 
| Bob Smith | PA    | 
+-----------+-------+

Giải pháp cuối cùng để tất cả nhân viên làm việc ở một tiểu bang nhất định được hiển thị dưới đây.

SELECT name FROM employees WHERE SUBSTRING_INDEX[SUBSTRING_INDEX[address, ',', 4], ',', -1]='PA';
+-----------+
| name      |
+-----------+
| John Doe  | 
| Bob Smith | 
+-----------+

Hãy cẩn thận

Một điều cần lưu ý về

$ids = array[]; 
while [$row = mysql_fetch_assoc[$result]]  
{
    $ids[] = $row["UserID"]; 
} 
echo implode[", ", $ids];
6 là hàm trả về toàn bộ chuỗi nếu trường được yêu cầu không tồn tại.

Ví dụ,

SELECT GROUP_CONCAT[UserID] as string  FROM Users;
1 trả về địa chỉ đầy đủ.

SELECT name, SUBSTRING_INDEX[address, ',', 6] FROM employees;
+-----------+------------------------------------------+
| name      | SUBSTRING_INDEX[address, ',', 6]         |
+-----------+------------------------------------------+
| John Doe  | 4225 Collins Street,Apt. A,Erie,PA,16510 | 
| Bob Smith | 234 Main Street,,Erie,PA,16510           | 
+-----------+------------------------------------------+

Sau đó, cố gắng trích xuất trường thứ sáu với

SELECT GROUP_CONCAT[UserID] as string  FROM Users;
2 sẽ cung cấp cho chúng tôi mã zip [trường thứ năm] sai.

$ids = array[]; 
while [$row = mysql_fetch_assoc[$result]]  
{
    $ids[] = $row["UserID"]; 
} 
echo implode[", ", $ids];
0

Một cách giải quyết có thể xảy ra với vấn đề này là kiểm tra xem số lượng trường lớn hơn hoặc bằng với chỉ mục được yêu cầu và sau đó mã trên hoặc trả về chuỗi trống, nếu chỉ mục trường không hợp lệ.

$ids = array[]; 
while [$row = mysql_fetch_assoc[$result]]  
{
    $ids[] = $row["UserID"]; 
} 
echo implode[", ", $ids];
1

Có thể sử dụng

Trong hầu hết các trường hợp, tốt hơn là sử dụng một bảng tra cứu riêng biệt hoặc một cột cho mỗi trường thay vì lưu trữ dữ liệu dưới dạng các giá trị được phân tách bằng dấu phẩy để tra cứu sau này.

Tuy nhiên, có thể có những trường hợp hiếm hoi trong đó thủ thuật trên có thể hữu ích. Ví dụ, gần đây tôi cần trả về danh sách các giá trị từ hàm do người dùng xác định và cách duy nhất để làm điều đó là trả về một chuỗi chứa các giá trị được phân tách bằng dấu phẩy. Cuối cùng tôi đã sử dụng

$ids = array[]; 
while [$row = mysql_fetch_assoc[$result]]  
{
    $ids[] = $row["UserID"]; 
} 
echo implode[", ", $ids];
6 để đặt hàng kết quả theo một trong các trường.

Tìm kiếm trong một cột chứa các giá trị được phân tách bằng dấu phẩy

MySQL có chức năng chuyên dụng find_in_set [] trả về chỉ mục trường nếu giá trị được tìm thấy trong một chuỗi chứa các giá trị được phân tách bằng dấu phẩy.

Ví dụ: câu lệnh sau trả về chỉ mục một dựa trên giá trị

SELECT GROUP_CONCAT[UserID] as string  FROM Users;
4 trong chuỗi
SELECT GROUP_CONCAT[UserID] as string  FROM Users;
5.

$ids = array[]; 
while [$row = mysql_fetch_assoc[$result]]  
{
    $ids[] = $row["UserID"]; 
} 
echo implode[", ", $ids];
2

Nếu giá trị đã cho không được tìm thấy, hàm

SELECT GROUP_CONCAT[UserID] as string  FROM Users;
6 trả về
SELECT GROUP_CONCAT[UserID] as string  FROM Users;
7.

$ids = array[]; 
while [$row = mysql_fetch_assoc[$result]]  
{
    $ids[] = $row["UserID"]; 
} 
echo implode[", ", $ids];
3

Làm thế nào để dấu phẩy phân tách mảng?

Danh sách phân tách bằng dấu phẩy có thể được tạo bằng cách sử dụng hàm Implode []. Ilifrode [] là một hàm tích hợp trong PHP và được sử dụng để tham gia các phần tử của một mảng. Imptrode [] là bí danh cho PHP | Chức năng tham gia [] và hoạt động giống hệt như hàm tham gia [].by using implode[] function. The implode[] is a builtin function in PHP and is used to join the elements of an array. implode[] is an alias for PHP | join[] function and works exactly same as that of join[] function.

Làm cách nào để phân tách các giá trị phân tách dấu phẩy trong MySQL?

MySQL có chức năng chuyên dụng find_in_set [] trả về chỉ mục trường nếu giá trị được tìm thấy trong một chuỗi chứa các giá trị được phân tách bằng dấu phẩy. Ví dụ: câu lệnh sau trả về chỉ mục giá trị C dựa trên chuỗi A, b, c, d. Nếu giá trị đã cho không được tìm thấy, hàm find_in_set [] trả về 0.FIND_IN_SET[] that returns field index if the value is found in a string containing comma-separated values. For example, the following statement returns one-based index of value C in string A,B,C,D . If the given value is not found, FIND_IN_SET[] function returns 0 .

Làm thế nào cột cập nhật với các giá trị phân tách dấu phẩy trong MySQL?

Để cập nhật các giá trị trong nhiều cột, bạn sử dụng danh sách các bài tập được phân tách bằng dấu phẩy bằng cách cung cấp một giá trị trong mỗi bài tập của mỗi cột dưới dạng giá trị theo nghĩa đen, biểu thức hoặc truy vấn con.Thứ ba, chỉ định các hàng nào được cập nhật bằng điều kiện trong mệnh đề WHERE.Mệnh đề WHERE là tùy chọn.use a list of comma-separated assignments by supplying a value in each column's assignment in the form of a literal value, an expression, or a subquery. Third, specify which rows to be updated using a condition in the WHERE clause. The WHERE clause is optional.

Làm thế nào để phân chia mảng bằng dấu phẩy trong PHP?

Nhiệm vụ là phân chia chuỗi đã cho với dấu phân cách dấu phẩy và lưu trữ kết quả trong một mảng.Sử dụng hàm explode [] hoặc preg_split [] để phân chia chuỗi trong PHP với dấu phân cách đã cho.PHP |Chức năng bùng nổ []: Hàm nổ [] là hàm sẵn có trong PHP được sử dụng để phân chia một chuỗi trong các chuỗi khác nhau.Use explode[] or preg_split[] function to split the string in php with given delimiter. PHP | explode[] Function: The explode[] function is an inbuilt function in PHP which is used to split a string in different strings.

Bài Viết Liên Quan

Chủ Đề