So sánh 2 chuoi trong mysqlphp năm 2024

Hàm strcmp() trong C được sử dụng để so sánh 2 chuỗi. Nếu hàm strcmp(str1, str2) trả về 0 thì 2 chuỗi bằng nhau, lớn hơn 0 thì chuỗi str1 lớn hơn chuỗi str2 và ngược lại nếu nhỏ hơn 0 thì chuỗi str1 nhỏ hơn str2.

include

include

int main() { char str1[20], str2[20]; printf("Nhap chuoi 1: "); gets(str1); printf("Nhap chuoi 2: "); gets(str2); if (strcmp(str1, str2) == 0) { printf("2 chuoi bang nhau."); } else if (strcmp(str1, str2) > 0) { printf("Chuoi 1 lon hon chuoi 2"); } else { printf("Chuoi 1 nho hon chuoi 2"); } return 0; } Kết quả:

Nhap chuoi 1: HelloC Nhap chuoi 2: HelloC++ Chuoi 1 nho hon chuoi 2



Trong bài này mình sẽ hướng dẫn cách sử dụng hàm STRCMP trong MySQL thông qua cú pháp và ví dụ thực tế.

So sánh 2 chuoi trong mysqlphp năm 2024

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Mô tả

Hàm STRCMP kiểm tra xem hai chuỗi có giống nhau hay không.

2. Cú pháp

Cú pháp của hàm STRCMP trong MySQL là:

STRCMP( string1, string2 )

Trong đó:

Bài viết này được đăng tại [free tuts .net]

string1string2: Hai chuỗi được so sánh với nhau.

Lưu ý:

  • Nếu chuỗi1 và chuỗi2 giống nhau, hàm STRCMP sẽ trả về 0.
  • Nếu chuỗi1 nhỏ hơn chuỗi2, hàm STRCMP sẽ trả về -1.
  • Nếu chuỗi1 lớn hơn chuỗi2, hàm STRCMP sẽ trả về 1.

3. Version

Hàm STRCMP có thể được sử dụng trong các phiên bản sau của MySQL:

  • MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23

4. Ví dụ

mysql> SELECT STRCMP('freetuts.net', 'freetuts.net'); Ket qua: 0 mysql> SELECT STRCMP('freetuts.net', 'myfreetuts.net'); Ket qua: -1 mysql> SELECT STRCMP('freetutsb.net', 'freetutsa.net'); Ket qua: 1

Với độ lớn Lớn hơn và nhỏ hơn đang dùng với nghĩa là theo thứ tự alphabet(ascii) của ký tự chứ không phải độ dài chuỗi. Và sẽ thực hiện so sánh từ trái qua phải(từ ký tự đầu tiên đến ký tự cuối cùng), gặp ký tự nào khác nhau chuỗi có thứ tự alphabet xếp sau thì chuỗi đó sẽ lơn hơn.

  • lọc điều kiện so sánh với chuỗi trong mysql với biến $loaitin="abc" mình sử dụng câu lệnh sau:

    ' select * from thongtin where loaitin = " '.$loaitin.' " ' thì không thể truy vấn lấy đc kết quả từ dữ liệu, không biết sai ở đâu? các bác chỉ giúp. thanks!

    - > "select \ from thongtin where loaitin = '" . $loaitin . "'";

sữa lại như vậy xem

- > Code: $loaitin="abc"; $sql="SELECT FROM thongtin WHERE loaitin=$loaitin";

Câu của bạn cũng không sai, chỉ thừa khoảng trắng giữa dấu " và ' nên truy vấn không ra

- > HIC ! các bác sai lầm ở dấu ' và " đó ' select \ from thongtin where loaitin = " '.$loaitin.' " '

Đơn giản hơn nhất là " select * from thongtin where loaitin = $loaitin"

Chạy 100% luôn !

-

So sánh 2 chuoi trong mysqlphp năm 2024
Được gửi bởi mcjambibi

HIC ! các bác sai lầm ở dấu ' và " đó ' select * from thongtin where loaitin = " '.$loaitin.' " '

Đơn giản hơn nhất là " select * from thongtin where loaitin = $loaitin"

Chạy 100% luôn !

Code của bạn chắc chắn sẽ không chạy được, vì nếu mà $loaitin là 1 string thì cái câu SQL đó bị lỗi cú pháp. Chỉ có thể sử dụng như thế khi $loaitin là một số int hay float gì đó mà thôi.

Cách tốt nhất là thế này:

PHP Code:

$sql = "SELECT * FROM thongtin WHERE loaitin='" . mysql_escape_string($loaitin) . "'"; //lọc luôn sql injection


Hàm strcmp() sẽ so sánh hai chuỗi phân biệt chữ hoa chữ thường, hàm trả về số âm nếu chuỗi thứ nhất nhỏ hơn chuỗi thứ 2, trả về 0 nếu hai chuỗi bằng nhau và trả về số dương nếu chuỗi thứ nhất lớn hơn chuỗi thứ 2.

So sánh 2 chuoi trong mysqlphp năm 2024

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cú pháp

Cú pháp: strcmp( $str1, $str2);

Trong đó:

  • $str1, $str2 là hai chuỗi cần so sánh.

Ví dụ

Code

$var1 = "Freetuts.net"; $var2 = "freetuts.net"; if (strcmp($var1, $var2) == 0) { echo "hai chuỗi giống nhau
"; }else{ echo "hai chuỗi không giống nhau
"; }

Kết quả

hai chuỗi không giống nhau

Code

$var1 = "hello world"; $var2 = "hello"; echo strcmp($var1, $var2);

Tham khảo: php.net

Bài viết này được đăng tại [free tuts .net]