Tôi đang cố gắng tìm kiếm hai trường dưới dạng một từ cơ sở dữ liệu MySQL bằng PHP.
e.g.
mysql_query["
SELECT [first_name,last_name] As name
FROM people
WHERE [name LIKE '%" . $term . "%']
"];
Tôi nghĩ rằng đây là mã để sử dụng, nhưng không có kết quả. Đã được một thời gian kể từ khi tôi làm điều này và tôi không thể nhớ chính xác làm thế nào để đạt được kết quả mong muốn.
Zuul
16.1k6 Huy hiệu vàng60 Huy hiệu bạc88 Huy hiệu Đồng6 gold badges60 silver badges88 bronze badges
Hỏi ngày 31 tháng 8 năm 2011 lúc 11:10Aug 31, 2011 at 11:10
Bạn đang tìm kiếm chức năng
mysql_query["SELECT CONCAT[first_name, last_name] As name FROM people WHERE [CONCAT[first_name, last_name] LIKE '%" . $term . "%']"];
4.mysql_query["SELECT CONCAT[first_name, last_name] As name FROM people WHERE [CONCAT[first_name, last_name] LIKE '%" . $term . "%']"];
Hoặc thậm chí ...
mysql_query["SELECT CONCAT[first_name, ' ', last_name] As name FROM people WHERE [CONCAT[first_name, ' ', last_name] LIKE '%" . $term . "%']"];
Tôi không thể giải thích cho bạn những lý do đằng sau điều này [... nhưng có lẽ ai đó có thể để lại nhận xét?], Nhưng bạn không thể sử dụng bí danh
mysql_query["SELECT CONCAT[first_name, last_name] As name FROM people WHERE [CONCAT[first_name, last_name] LIKE '%" . $term . "%']"];
5 để tìm kiếm cả hai trường, bạn phải một lần nữa mysql_query["SELECT CONCAT[first_name, last_name] As name FROM people WHERE [CONCAT[first_name, last_name] LIKE '%" . $term . "%']"];
4 một lần nữa.Đã trả lời ngày 31 tháng 8 năm 2011 lúc 11:14Aug 31, 2011 at 11:14
dee-seedee-seedee-see
23.2K5 Huy hiệu vàng59 Huy hiệu bạc89 Huy hiệu đồng5 gold badges59 silver badges89 bronze badges
6
dee-see
23.2K5 Huy hiệu vàng59 Huy hiệu bạc89 Huy hiệu đồng5 gold badges59 silver badges89 bronze badges
Đã trả lời ngày 31 tháng 8 năm 2011 lúc 11:21Aug 31, 2011 at 11:21
1
Không rõ đối với tôi, "cách thanh lịch hơn" là gì.
Oracle Bạn có thể sử dụng câu lệnh sau để tạo các cột thành hàng
select all_name from foo unpivot [all_name for col_name in [ his_name, her_name, other_name]];
Đây là sơ đồ cú pháp của câu lệnh select
SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr ...] [FROM table_references [PARTITION partition_list] [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name[argument_list]] [INTO OUTFILE 'file_name' [CHARACTER SET charset_name] export_options | INTO DUMPFILE 'file_name' | INTO var_name [, var_name]] [FOR UPDATE | LOCK IN SHARE MODE]]
Cả ________ 17, ________ 18,
mysql_query["SELECT CONCAT[first_name, last_name] As name FROM people WHERE [CONCAT[first_name, last_name] LIKE '%" . $term . "%']"];
9, mysql_query["SELECT CONCAT[first_name, ' ', last_name] As name FROM people WHERE [CONCAT[first_name, ' ', last_name] LIKE '%" . $term . "%']"];
0, mysql_query["SELECT CONCAT[first_name, ' ', last_name] As name FROM people WHERE [CONCAT[first_name, ' ', last_name] LIKE '%" . $term . "%']"];
1, mysql_query["SELECT CONCAT[first_name, ' ', last_name] As name FROM people WHERE [CONCAT[first_name, ' ', last_name] LIKE '%" . $term . "%']"];
2, mysql_query["SELECT CONCAT[first_name, ' ', last_name] As name FROM people WHERE [CONCAT[first_name, ' ', last_name] LIKE '%" . $term . "%']"];
3 cũng như mệnh đề mysql_query["SELECT CONCAT[first_name, ' ', last_name] As name FROM people WHERE [CONCAT[first_name, ' ', last_name] LIKE '%" . $term . "%']"];
4 có thể tăng số lượng hàng được xác định bởi mệnh đề mysql_query["SELECT CONCAT[first_name, ' ', last_name] As name FROM people WHERE [CONCAT[first_name, ' ', last_name] LIKE '%" . $term . "%']"];
5. Vì vậy, nếu mysql_query["SELECT CONCAT[first_name, ' ', last_name] As name FROM people WHERE [CONCAT[first_name, ' ', last_name] LIKE '%" . $term . "%']"];
6 bằng mysql_query["SELECT CONCAT[first_name, ' ', last_name] As name FROM people WHERE [CONCAT[first_name, ' ', last_name] LIKE '%" . $term . "%']"];
7, truy vấn không thể chứa nhiều hàng hơn bảng mysql_query["SELECT CONCAT[first_name, ' ', last_name] As name FROM people WHERE [CONCAT[first_name, ' ', last_name] LIKE '%" . $term . "%']"];
7. Vì vậy, MySQL không có một cách "thanh lịch" như vậy để không giới hạn bảng.So MySQL does not have such an "elegant" way to unpivot a table.
Một cách để thực hiện việc không thanh toán như vậy mà không cần sử dụng công đoàn có thể được thực hiện bằng cách sử dụng tham gia. Chúng tôi muốn tạo 3 hàng cho mỗi hàng của bảng
mysql_query["SELECT CONCAT[first_name, ' ', last_name] As name FROM people WHERE [CONCAT[first_name, ' ', last_name] LIKE '%" . $term . "%']"];
7, vì vậy chúng tôi tạo một bảng phụ trợ chứa ba hàng và [chéo] tham gia vào bảng mysql_query["SELECT CONCAT[first_name, ' ', last_name] As name FROM people WHERE [CONCAT[first_name, ' ', last_name] LIKE '%" . $term . "%']"];
7. Bây giờ chúng tôi có ba hàng trong truy vấn của chúng tôi cho mỗi hàng trong bảng cơ sở mysql_query["SELECT CONCAT[first_name, ' ', last_name] As name FROM people WHERE [CONCAT[first_name, ' ', last_name] LIKE '%" . $term . "%']"];
7. Mỗi hàng truy vấn có thể được điền bằng dữ liệu thích hợp. Thay vào đó, hàm ELT người ta có thể sử dụng nếu hoặc trường hợp.Sql fiddle
Thiết lập lược đồ MySQL 5.6::
create table foo [
his_name varchar[10],
her_name varchar[10],
other_name varchar[10]];
insert into foo[his_name,her_name,other_name] values ['one','two','three'];
insert into foo[his_name,her_name,other_name] values ['four','five','six'];
create table aux[line int];
insert into aux[line] values[1];
insert into aux[line] values[2];
insert into aux[line] values[3];
Truy vấn xoay vòng::
select elt[aux.line,foo.his_name,foo.her_name,foo.other_name] all_name
from foo cross join aux
Results::
| all_name |
|----------|
| one |
| four |
| two |
| five |
| three |
| six |
Tất nhiên có nhiều cách khác nhau để tạo một bảng chứa ba hàng có giá trị 1,2,3:
Sql fiddle
Sử dụng bảng phụ trợ::
create table aux[line int];
insert into aux[line] values[1];
insert into aux[line] values[2];
insert into aux[line] values[3];
Sử dụng bảng phụ trợ::
select line
from aux
Sử dụng một biểu thức không đổi::
mysql_query["SELECT CONCAT[first_name, last_name] As name FROM people WHERE [CONCAT[first_name, last_name] LIKE '%" . $term . "%']"];
0Đếm số hàng: Tôi đã tìm thấy nó ở đây: I found it here
mysql_query["SELECT CONCAT[first_name, last_name] As name FROM people WHERE [CONCAT[first_name, last_name] LIKE '%" . $term . "%']"];
1Sử dụng một trong các chế độ xem từ điển::
mysql_query["SELECT CONCAT[first_name, last_name] As name FROM people WHERE [CONCAT[first_name, last_name] LIKE '%" . $term . "%']"];
2Kết quả::
mysql_query["SELECT CONCAT[first_name, last_name] As name FROM people WHERE [CONCAT[first_name, last_name] LIKE '%" . $term . "%']"];
3