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ế.
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]
string1
và string2
: 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 !
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.
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]