09/10/2018, 23:21

Tìm tên thành viên có các ký tự đặc biệt ?

Tôi làm 1 trang tìm thành viên theo ký tự A, B, C … Z, còn các thành viên có ký tự đầu (!, @, #, $ …) thì tìm theo một nhóm (tạm gọi là “khác”), vậy tìm các thành viên trong nhóm “khác” như thế nào ? Có ai biết không vậy ?
superthinb viết 01:30 ngày 10/10/2018
Câu hỏi của bạn rất mơ hồ. Không hiểu bạn dùng cái gì để lưu danh sách thành viên, script chạy trên server là gì, cách tổ chức cơ sở dữ liệu bạn ra làm sao. Cứ nói mơ hồ thế thì rất là khó trả lời.

Ví dụ: Bạn dùng MySQL thì dĩ nhiên có một table cho thành viên, và có một trường để căng cờ báo rằng nó là có ký tự đặc biệt hay không? Khi người ta đăng ký thành viên / do bạn nhập, viết hàm xử lý, nếu trong trên có ký tự đặc biệt dạng !, @, #... như bạn nó thì bật cờ của nó lên. Sau này tìm kiếm thì cứ theo cái cờ đó mà liệt kê.
kid08 viết 01:34 ngày 10/10/2018
bạn dùng ngôn ngữ gì làm vậy :-/
firemanq6 viết 01:25 ngày 10/10/2018
bạn dùng ngôn ngữ gì làm vậy :-/

ASP bạn à ! bạn có cách nào hay không, giúp tôi với !
Dctran viết 01:34 ngày 10/10/2018
Không biết bạn dùng CSDL gì, có thể làm theo cách của bạn supperthinb là tạo thêm 1 trường để làm cờ (flag) và khi truy vấn thì lọc theo trường này.

Theo như tôi hiểu thì mục đích bạn muốn tìm các bản ghi có ký tự đầu tiên không nằm trong ABC,...XYZ. Như vậy bạn cũng có thể làm theo cách sau đây, code này viết cho CSDL Oracle:

Giả sử bạn có table : tbl_member có trường là ten.
Code:
select ten from tbl_test where upper(substr(ten,0,1))>='Z' or upper(substr(ten ,0,1))<='A')
lephap99 viết 01:23 ngày 10/10/2018
bạn dùng regex đi. Tôi không rành asp nhưng với php thì quá simple :
if(ereg('^[#@\$!%*]', $username) {
echo "Co Ky tu dac biet";
}else{
echo "Khong co ky tu nao dat biet";
}
Dctran viết 01:23 ngày 10/10/2018
Tốt nhất là nên xử lý ngay trong câu truy vấn, vì sao? Vì thay vì chọn ra được toàn bộ bản ghi trong câu truy vấn rồi mới sử dụng hàm trong ngôn ngữ lập trình bạn dùng kiểm tra lần nữa thường thì sẽ chậm hơn và code phức tạp hơn.

Nếu bạn dùng ASP thì tôi cũng không biết có khác nhiều so với ASP.NET không, trong ASP.NET thì việc lấy ra ký tự đầu tiên của chuỗi thì hoàn toàn đơn giản. Nếu st là kiểu String thì đó sẽ là st.chars(0) và bạn chỉ cần so sánh với ký tự 'A' và 'Z' để tìm ra cái "nhóm" mà bạn cần.

Nhìn chung cách nào cũng được nhưng tốt nhất là nên xử lý ngay trong câu SQL.
Bài liên quan
0