Hướng dẫn mysql select two columns as one - mysql chọn hai cột làm một

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.

Hướng dẫn mysql select two columns as one - mysql chọn hai cột làm một

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

Hướng dẫn mysql select two columns as one - mysql chọn hai cột làm một

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

Hướng dẫn mysql select two columns as one - mysql chọn hai cột làm một

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 . "%')");
1

Sử 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 . "%')");
2

Kết quả::

mysql_query("SELECT CONCAT(first_name, last_name) As name FROM people WHERE (CONCAT(first_name, last_name) LIKE '%" . $term . "%')");
3

Làm cách nào để kết hợp nhiều cột thành một trong MySQL?

Liên kết. Hàm này được sử dụng để kết hợp nhiều cột hoặc chuỗi thành một cột. ....
Concat_ws. Hàm Concat_ws () không chỉ thêm nhiều giá trị chuỗi và làm cho chúng trở thành một giá trị chuỗi đơn. ....
Sử dụng chúng trong mệnh đề nơi. Bạn có thể sử dụng cả hai trong mệnh đề nơi lựa chọn dựa trên điều kiện. ....
Conclusion..

Làm cách nào để chọn hai cột trong MySQL?

Để chọn nhiều cột từ một bảng, chỉ cần tách tên cột bằng dấu phẩy!Ví dụ, truy vấn này chọn hai cột, tên và ngày sinh, từ bảng People: chọn tên, sinh từ mọi người;Đôi khi, bạn có thể muốn chọn tất cả các cột từ một bảng.separate the column names with commas! For example, this query selects two columns, name and birthdate , from the people table: SELECT name, birthdate FROM people; Sometimes, you may want to select all columns from a table.

Làm cách nào để hiển thị hai cột dưới dạng cột đơn trong SQL?

Bằng cách thay thế cột hiện có bằng hàm thay thế () bằng hàm concat ()..

Làm cách nào để chọn hai cột trong SQL?

Chọn Cú pháp..
Chọn cột1, cột2, ... từ TABE_NAME ;.
Chọn * từ bảng_name ;.
Thí dụ.Chọn Tên tùy chỉnh, Thành phố từ khách hàng ;.
Thí dụ.Chọn * từ khách hàng ;.