Hầu như tất cả mọi người đã ở trong một tình huống khi cần kiểm tra xem một bản ghi có tồn tại trong cơ sở dữ liệu MySQL hay không.
Hãy cùng xem qua cách làm điều đó với lệnh phù hợp và dễ dàng nhất. Dưới đây bạn có thể tìm thấy đúng lệnh và một sai lầm phổ biến mà hầu hết mọi người mới bắt đầu đều có thể mắc phải trong khi cố gắng tìm ra vấn đề.
Nếu bạn muốn kiểm tra xem bản ghi có tồn tại trong cơ sở dữ liệu của bạn hay không, bạn nên chạy mã sau:
Sử dụng MySQLI
Sử dụng MySQL [không dùng nữa]
Bây giờ, hãy để kiểm tra một sai lầm phổ biến mà chúng tôi khuyên bạn nên vượt qua:
MySQL được coi là một hệ thống quản lý cơ sở dữ liệu quan hệ nguồn mở. Nó nhằm mục đích tổ chức dữ liệu thành một hoặc nhiều bảng dữ liệu.
Một số ứng dụng phổ biến như Twitter, Facebook YouTube, Google áp dụng MySQL cho mục đích lưu trữ dữ liệu. Nó ban đầu được thực hiện để sử dụng hạn chế. Tuy nhiên, bây giờ nó tương thích với nhiều nền tảng điện toán thiết yếu như MacOS, Linux Ubuntu và Microsoft Windows.
Để xác định xem ID có tồn tại trong cơ sở dữ liệu không:
Truy vấn cơ sở dữ liệu cho kiểm tra ID đó để xem có bao nhiêu bản ghi được trả về, nếu không có bản ghi nào được trả về, thì ID không tồn tại. Tuy nhiên, nếu 1 bản ghi được trả về, thì ID không tồn tại.
Check to see how many records where returned, if no records are returned, then the ID does not exist. However if 1 record is returned, then the ID does exist.
Để kiểm tra xem nó có ở đó không, tôi cho rằng bạn có thể đi về nó 2 cách ..
Cách đầu tiên, tôi đoán bạn chỉ có thể tìm ra ID lớn nhất là gì và nếu ID thấp hơn một bài đăng phải tồn tại ..
Một cách tốt hơn sẽ là giữ một bản ghi của tất cả các bài đăng, ngay cả khi bạn xóa một bản, hãy ghi lại một bản ghi của nó trong cơ sở dữ liệu ở đâu đó và đặt trạng thái của bài đăng đó để xóa.
Câu trả lời được đề xuất
Tôi tin rằng bạn có thể sử dụng như ...
SELECT username FROM users WHERE username LIKE 'John'
Nhảy để đăng
Nếu đối chiếu cơ sở dữ liệu của bạn được đặt thành trường hợp không nhạy cảm, bạn chỉ cần sử dụng
2
Nhảy để đăng
Nếu đối chiếu cơ sở dữ liệu của bạn được đặt thành trường hợp không nhạy cảm, bạn chỉ cần sử dụng
2
Tất cả 8 câu trả lời 131 Posting Whiz in Training
Featured Poster Tôi tin rằng bạn có thể sử dụng như ...SELECT username FROM users WHERE username LIKE 'John'
Pritaeas2.114 ¯ \ _ [ツ] _/¯ áp phích ModeratorFeatured 2,114 ¯\_[ツ]_/¯ Moderator Featured Poster
9 năm trướcNếu đối chiếu cơ sở dữ liệu của bạn được đặt thành trường hợp không nhạy cảm, bạn chỉ cần sử dụng
2
Atli182 Đăng chuyên nghiệp 182 Posting Pro
9 năm trướcBạn cũng có thể ghi đè bộ đối chiếu đã đặt trên một trường cho mỗi so sánh. Vì vậy, ví dụ, nếu bạn có một trường sử dụng đối chiếu
4 nhạy cảm với trường hợp, nhưng muốn so sánh các trường theo cách không nhạy cảm trường hợp, bạn có thể làm:SELECT stuff FROM theTable
WHERE textField COLLATE latin1_general_ci = 'John'
Lưu ý kết thúc của tên đối chiếu. Nếu đó là "CI" thì nó không nhạy cảm với trường hợp. Nếu đó là "CS" thì nó nhạy cảm trường hợp.
9 năm trước
Tôi nghĩ bạn có thể chọn
$result = mysql_query["SELECT * FROM users WHERE username='$userid'"];
if[mysql_num_rows[$result] == 1]
{
echo "User exist";
}
Được chỉnh sửa 9 năm trước bởi Pritaeas vì: sửa mã nhỏ
Ziyaddinsadigov
9 năm trướccảm ơn rất nhiều! Tôi cũng đã thử nghiệm với như vậy:
$name="John";
$query=mysql_query["SELECT * FROM tablename WHERE 1st_name='$name'"];
Atli182 Đăng chuyên nghiệp 182 Posting Pro
9 năm trướcBạn cũng có thể ghi đè bộ đối chiếu đã đặt trên một trường cho mỗi so sánh. Vì vậy, ví dụ, nếu bạn có một trường sử dụng đối chiếu
4 nhạy cảm với trường hợp, nhưng muốn so sánh các trường theo cách không nhạy cảm trường hợp, bạn có thể làm:$sql = "SELECT COUNT[*] FROM users WHERE username='$userid'";
$result = mysql_query[$sql] or trigger_error[mysql_error[], E_USER_ERROR];
$row = mysql_fetch_row[$sql];
if [$row[0] > 0] {
echo "User exist!";
}
Ziyaddinsadigov
9 năm trướccảm ơn rất nhiều! Tôi cũng đã thử nghiệm với như vậy:
Atli182 Đăng chuyên nghiệp 182 Posting Pro
9 năm trướcBạn cũng có thể ghi đè bộ đối chiếu đã đặt trên một trường cho mỗi so sánh. Vì vậy, ví dụ, nếu bạn có một trường sử dụng đối chiếu
4 nhạy cảm với trường hợp, nhưng muốn so sánh các trường theo cách không nhạy cảm trường hợp, bạn có thể làm:Lưu ý kết thúc của tên đối chiếu. Nếu đó là "CI" thì nó không nhạy cảm với trường hợp. Nếu đó là "CS" thì nó nhạy cảm trường hợp.
+---------+ +------------------+
| items | | item_tags |
+---------+ +------------------+
| id [PK] |>--->| item_id [PK, FK] |
| name | | tag [PK] |
+---------+ +------------------+
Tôi nghĩ bạn có thể chọn
0Được chỉnh sửa 9 năm trước bởi Pritaeas vì: sửa mã nhỏ
1Ziyaddinsadigov
cảm ơn rất nhiều! Tôi cũng đã thử nghiệm với như vậy:
Tại sao bạn sẽ chọn tất cả dữ liệu trong hàng nếu bạn sẽ không sử dụng bất kỳ dữ liệu nào? Đó chỉ là một sự lãng phí tài nguyên, thực sự. Mysql có thể đếm [] các hàng cho bạn và chỉ trả lại điều đó.
Vâng. Và làm thế nào để lấy dữ liệu từ cơ sở dữ liệu MySQL? Trong cơ sở dữ liệu, tôi muốn viết nhiều từ trong một hàng với dấu phẩy, như một mảng. Và sau đó tôi muốn tìm nạp nó như một mảng và kiểm tra xem biến của tôi có tồn tại bên trong mảng này không. Tôi làm nó như thế nào?