Làm cách nào để chọn một hàng cụ thể từ một bảng trong sql trong php?

Câu lệnh SELECT trong MySQL được sử dụng để truy xuất các hàng từ một hoặc nhiều bảng. Câu lệnh cũng có thể bao gồm câu lệnh UNION và truy vấn con

cú pháp

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
[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' export_options
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]

Tranh luận

Câu lệnh NameDescriptionsSELECTSELECT được sử dụng để tìm nạp các hàng hoặc bản ghi từ một hoặc nhiều bảng. * , ALLCho biết tất cả các cột. cộtCột hoặc danh sách cột. tableCho biết tên của bảng từ đó các hàng sẽ được truy xuất. DISTINCT Mệnh đề DISTINCT được sử dụng để truy xuất các hàng duy nhất từ ​​một bảng. DISTINCTROW DISTINCTROW là một từ đồng nghĩa với DISTINCT. HIGH_PRIORITYNếu được sử dụng với CHỌN, truy vấn được liên kết sẽ có mức độ ưu tiên cao hơn so với câu lệnh cập nhật. Nó chạy ngay cả khi bảng mà truy vấn được áp dụng bị khóa bởi một truy vấn cập nhật. Nó chỉ có thể được sử dụng với các công cụ lưu trữ MyISAM, MEMORY và MERGE. Và chỉ có thể được sử dụng nếu truy vấn được liên kết rất nhanh cũng như được thực hiện ngay lập tức. Nếu một câu lệnh CHỌN là một phần của UNION, bạn không thể sử dụng HIGH_PRIORITY cùng với. STRAIGHT_JOINNếu được sử dụng với CHỌN, các bảng được liên kết sẽ được nối theo thứ tự chúng được sắp xếp trong mệnh đề TỪ tương ứng. Điều này không thể được sử dụng để thực hiện truy vấn nhanh và cũng có thể được sử dụng trong danh sách table_references. SQL_SMALL_RESULTCó thể được sử dụng với GROUP BY hoặc DISTINCT. Nó báo cho trình tối ưu hóa [một thành phần của hệ thống DataBase xác định cách thực hiện truy vấn hiệu quả nhất] rằng tập kết quả nhỏ, vì vậy hãy sử dụng các bảng tạm thời nhanh để lưu trữ bảng kết quả thay vì sử dụng sắp xếp. SQL_BIG_RESULTCó thể được sử dụng với GROUP BY hoặc DISTINCT. Nó báo cho trình tối ưu hóa [một thành phần của hệ thống DataBase xác định cách hiệu quả nhất để thực hiện truy vấn] rằng tập kết quả có nhiều hàng, vì vậy hãy sử dụng bảng tạm thời dựa trên đĩa nếu cần và ưu tiên sắp xếp để sử dụng bảng tạm thời có . SQL_BUFFER_RESULTNó buộc kết quả được đưa vào một bảng tạm thời. Nếu được sử dụng, MySQL có thể giải phóng các khóa bảng sớm hơn và mất ít thời gian hơn để gửi tập kết quả tới máy khách, nơi có thể mất nhiều thời gian. Nó không thể được sử dụng cho các truy vấn phụ hoặc theo UNION. SQL_CACHENó yêu cầu MySQL lưu kết quả vào bộ đệm truy vấn [Một thành phần hệ thống DataBase lưu trữ văn bản của câu lệnh CHỌN cùng với kết quả tương ứng được gửi tới máy khách] nếu nó có thể lưu vào bộ đệm. Giá trị của biến hệ thống query_cache_type là 2 hoặc DEMAND. SQL_NO_CACHENó yêu cầu MySQL không lưu trữ kết quả trong bộ đệm truy vấn [Một thành phần hệ thống DataBase lưu trữ văn bản của câu lệnh CHỌN cùng với kết quả tương ứng được gửi tới máy khách]. Nó cũng có thể được sử dụng cho các khung nhìn nếu nó đi kèm với câu lệnh SELECT. SQL_CALC_FOUND_ROWSNó yêu cầu MySQL tính số lượng hàng trong một tập hợp kết quả. Trong khi tính toán các hàng theo kiểu này, mệnh đề LIMIT bị bỏ qua. Sau đó, số lượng hàng có thể được truy xuất bằng SELECT FOUND_ROWS[]. select_exprMột biểu thức. TỪ Mệnh đề này được sử dụng sau CHỌN và các bảng hoặc truy vấn con trước đó. table_referencesTên của các bảng được sử dụng trong câu lệnh SELECT. WHERE Các điều kiện được cung cấp sau từ khóa này [trong câu lệnh chọn]. where_conditionĐiều kiện được đặt sau WHERE. GROUP BYNếu được sử dụng, kết quả trả về từ tên trường được sử dụng sau mệnh đề GROUP BY sẽ được nhóm lại với nhau trong tập hợp kết quả. col_nameTên của cột hoặc các cột hoặc trường. exprMột biểu thức. vị trí Đề cập đến vị trí của các cột bắt đầu bằng 1. ASCNếu được sử dụng, kết quả được trả về theo thứ tự tăng dần. DESCNếu được sử dụng, kết quả được trả về theo thứ tự giảm dần. VỚI ROLLUP Công cụ sửa đổi này có thể được sử dụng với mệnh đề GROUP BY. Nếu được sử dụng, các hàng bổ sung sẽ được thêm vào đầu ra tóm tắt. HAVING Công cụ sửa đổi này có thể được sử dụng với mệnh đề GROUP BY và các hàm tổng hợp. Không thể sử dụng với mệnh đề WHERE. ORDER BYMySQL Mệnh đề ORDER BY chỉ định thứ tự sắp xếp các cột trong khi truy xuất dữ liệu trong câu lệnh SELECT. GIỚI HẠN Nó luôn được theo sau bởi một hoặc hai đối số số. Đối số đầu tiên là phần bù của hàng đầu tiên được trả về và đối số thứ hai là số lượng hàng tối đa được trả về trong tập hợp kết quả. PROCEDURE Mệnh đề này đặt tên cho một thủ tục sẽ xử lý dữ liệu trong tập kết quả. INTO OUTFILETạo bản sao lưu của bảng được liên kết trong một tệp được chỉ định. INTO DUMPFILENếu được sử dụng thay cho INTO OUTFILE, chỉ một hàng được ghi vào tệp. Hữu ích nếu các giá trị BLOB được lưu trữ trong một tệp. var_nameTên biến lưu dữ liệu tạm thời. ĐỂ CẬP NHẬTNếu được sử dụng với công cụ lưu trữ sử dụng khóa trang hoặc hàng, cho đến khi kết thúc giao dịch, các hàng được kiểm tra bởi truy vấn sẽ bị khóa ghi. KHÓA TRONG CHẾ ĐỘ CHIA SẺ Nếu được sử dụng, khóa dùng chung sẽ được đặt trên các hàng được truy vấn liên quan kiểm tra. Vì vậy, các giao dịch khác có thể đọc các hàng được kiểm tra, không thể cập nhật hoặc xóa các hàng đó


Các mệnh đề sau thường được sử dụng trong câu lệnh SELECT

  • Mỗi select_expr chỉ ra một cột mà bạn muốn truy xuất. Phải có ít nhất một select_expr
  • table_references cho biết bảng hoặc các bảng để truy xuất hàng
  • Mệnh đề WHERE, nếu được đưa ra, chỉ ra điều kiện hoặc các điều kiện mà các hàng phải thỏa mãn để được chọn. trong đó_điều_kiện là một biểu thức có giá trị đúng đối với mỗi hàng được chọn. Câu lệnh chọn tất cả các hàng nếu không có mệnh đề WHERE [i. e mà không có bất kỳ điều kiện nào]
  • Trong biểu thức WHERE, bạn có thể sử dụng bất kỳ hàm và toán tử nào mà MySQL hỗ trợ, ngoại trừ các hàm tổng hợp

CHỌN cũng có thể được sử dụng để truy xuất các hàng được tính toán mà không cần tham chiếu đến bất kỳ bảng nào

Ví dụ

mysql> SELECT 5 - 3 ;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]

Bạn có thể chỉ định DUAL làm tên bảng giả khi không có bảng nào được tham chiếu

mysql> SELECT 5 - 3 FROM DUAL;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]

DUAL hoàn toàn là để thuận tiện cho những người yêu cầu tất cả các câu lệnh CHỌN phải có TỪ và có thể có các mệnh đề khác. MySQL có thể bỏ qua các điều khoản. MySQL không yêu cầu TỪ DUAL nếu không có bảng nào được tham chiếu

Nói chung, các mệnh đề được sử dụng phải được đưa ra theo đúng thứ tự được hiển thị trong phần mô tả cú pháp. Ví dụ: mệnh đề HAVING phải xuất hiện sau bất kỳ mệnh đề GROUP BY nào và trước bất kỳ mệnh đề ORDER BY nào. Trong các trang tiếp theo của hướng dẫn w3resource MySQL, bạn sẽ tìm thấy phần thảo luận chi tiết kèm theo các ví dụ [thường có mã PHP] về các đối số đã nói của câu lệnh SELECT

MySQL chọn tất cả dữ liệu

Câu lệnh SELECT trong MySQL mà không có bất kỳ điều kiện nào sẽ truy xuất tất cả các bản ghi từ một bảng. Câu lệnh SELECT sau sẽ lấy tất cả dữ liệu từ bảng nhà xuất bản

SELECT *
FROM publisher;

Cái bàn. nhà xuất bản


đầu ra

mysql> SELECT * FROM publisher;
+--------+------------------------------+-----------+-----------+----------------+--------------+------------+
| pub_id | pub_name                     | pub_city  | country   | country_office | no_of_branch | estd       |
+--------+------------------------------+-----------+-----------+----------------+--------------+------------+
| P001   | Jex Max Publication          | New York  | USA       | New York       |           15 | 1969-12-25 | 
| P002   | BPP Publication              | Mumbai    | India     | New Delhi      |           10 | 1985-10-01 | 
| P003   | New Harrold Publication      | Adelaide  | Australia | Sydney         |            6 | 1975-09-05 | 
| P004   | Ultra Press Inc.             | London    | UK        | London         |            8 | 1948-07-10 | 
| P005   | Mountain Publication         | Houstan   | USA       | Sun Diego      |           25 | 1975-01-01 | 
| P006   | Summer Night Publication     | New York  | USA       | Atlanta        |           10 | 1990-12-10 | 
| P007   | Pieterson Grp. of Publishers | Cambridge | UK        | London         |            6 | 1950-07-15 | 
| P008   | Novel Publisher Ltd.         | New Delhi | India     | Bangalore      |           10 | 2000-01-01 | 
+--------+------------------------------+-----------+-----------+----------------+--------------+------------+
8 rows in set [0.00 sec]

tập lệnh PHP





example-select-all-data - php MySQL examples | w3resource






Xem ví dụ trong trình duyệt

MySQL CHỌN hàng cụ thể

Khi người dùng muốn truy xuất một số hàng riêng lẻ từ một bảng, mệnh đề WHERE phải được thêm vào cùng với câu lệnh SELECT ngay sau đó là một điều kiện

cú pháp

SELECT * 
FROM  
WHERE 
where_condition

Ở đây * chỉ ra tất cả các cột

Ví dụ

Câu lệnh SELECT sau đây sẽ truy xuất các hàng cụ thể có 'quốc gia' là Hoa Kỳ

Mã số

SELECT *
FROM publisher
WHERE country='USA'

đầu ra

________số 8

MySQL CHỌN các hàng cụ thể với toán tử AND

Toán tử AND của MySQL được sử dụng để kết hợp nhiều hơn một điều kiện nhằm tìm nạp các bản ghi khi cả hai điều kiện đều được thỏa mãn. Câu lệnh SELECT sau đây sẽ truy xuất các hàng cụ thể có quốc gia và thành phố của nhà xuất bản là 'USA' và 'New York'

Mã số

SELECT *
FROM publisher
WHERE country='USA'
AND pub_city='New York';

đầu ra

mysql> SELECT 5 - 3 ;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]
0

Các cột cụ thể của MySQL CHỌN

Để truy xuất bản ghi từ các cột cụ thể, bạn cần chỉ định danh sách các cột được phân tách bằng dấu phẩy. Câu lệnh MySQL sau đây trả về tên sách, id tác giả và giá sách từ bảng book_mast

Cái bàn. book_mast


Mã số

mysql> SELECT 5 - 3 ;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]
1

đầu ra

mysql> SELECT 5 - 3 ;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]
2

MySQL chọn các cột cụ thể với toán tử riêng biệt

Mệnh đề DISTINCT được sử dụng để lấy các hàng duy nhất từ ​​một bảng. Câu lệnh MySQL sau truy xuất các id tác giả duy nhất từ ​​bảng book_mast

Mã số

mysql> SELECT 5 - 3 ;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]
3

đầu ra

mysql> SELECT 5 - 3 ;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]
4

Ghi chú. Nếu bạn nhìn vào bảng book_mast được hiển thị bên dưới Bảng mẫu. tiêu đề book_mast, bạn sẽ thấy rằng AUT005 [trong cột 'aut_id'] đã xuất hiện nhiều lần. Sử dụng mệnh đề DISTINCT, chúng tôi đã loại bỏ sự dư thừa này

Các cột cụ thể của MySQL CHỌN với toán tử OR logic

Toán tử OR truy xuất các bản ghi từ một bảng nếu ít nhất một trong các điều kiện đã cho được thỏa mãn. Câu lệnh MySQL sau truy xuất các bản ghi của các cột pub_name, country, pub_city từ bảng nhà xuất bản nếu một trong hai Quốc gia [i. e. quốc gia] của nhà xuất bản là 'USA' hoặc thành phố của anh ấy [i. e. pub_city] là 'New York'

Mã số

mysql> SELECT 5 - 3 ;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]
5

đầu ra

mysql> SELECT 5 - 3 ;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]
6

MySQL sắp xếp các hàng theo thứ tự tăng dần

Mệnh đề ORDER BY của MySQL chỉ định thứ tự các cột được sắp xếp trong khi truy xuất dữ liệu trong câu lệnh SELECT. Theo mặc định, các cột được sắp xếp theo thứ tự tăng dần. Bạn có thể sử dụng từ khóa ASC để đạt được kết quả tương tự

Ghi chú. Trong trường hợp sắp xếp cột loại ký tự, việc sắp xếp phụ thuộc vào độ phân biệt chữ hoa chữ thường. Thứ tự sắp xếp mặc định tăng dần, điều này có nghĩa là giá trị nhỏ nhất được ưu tiên trước. Để sắp xếp theo thứ tự ngược lại, phải sử dụng phím DESC

Trong câu lệnh MySQL sau, tất cả các bản ghi của các cột pub_name, country và pub_city của bảng nhà xuất bản đang được tìm nạp và sắp xếp theo cột pub_name. Vì chúng tôi chưa chỉ định bất kỳ từ khóa thứ tự nào [ASC hoặc DESC], theo mặc định, nó được sắp xếp theo thứ tự tăng dần

Mã số

mysql> SELECT 5 - 3 ;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]
7

đầu ra

mysql> SELECT 5 - 3 ;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]
8

MySQL sắp xếp các hàng theo thứ tự giảm dần

Câu lệnh MySQL sau sắp xếp các hàng của bảng theo thứ tự giảm dần bằng cách sử dụng mệnh đề ORDER BY

Mã số

mysql> SELECT 5 - 3 ;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]
9

đầu ra

mysql> SELECT 5 - 3 FROM DUAL;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]
0

MySQL sắp xếp các hàng trên nhiều cột

Sắp xếp có thể được thực hiện trên nhiều cột. Cách sắp xếp này xảy ra là, đầu tiên các hàng sẽ được sắp xếp trên cột đầu tiên, sau đó các hàng sẽ được sắp xếp trên cột thứ hai có dữ liệu của cột đầu tiên giống nhau

Trong câu lệnh MySQL sau, tất cả các bản ghi của các cột pub_name, country và pub_city của bảng nhà xuất bản đang được tìm nạp và sắp xếp theo các cột country và pub_city. Vì chúng tôi chưa chỉ định bất kỳ từ khóa thứ tự nào [ASC hoặc DESC], theo mặc định, nó được sắp xếp theo thứ tự tăng dần

Mã số

mysql> SELECT 5 - 3 FROM DUAL;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]
1

đầu ra

mysql> SELECT 5 - 3 FROM DUAL;
+-------+
| 5 - 3 |
+-------+
|     2 |
+-------+
1 row in set [0.00 sec]
2

MySQL chọn với giá trị NULL

IS NULL, IS NOT NULL được sử dụng để chọn hoặc kiểm tra xem giá trị được lưu trữ trong bảng có phải là NULL hay không. Trong khi viết câu lệnh MySQL, từ khóa NULL được sử dụng để chỉ định giá trị null

Chủ Đề