Làm thế nào tôi có thể truy vấn tên bằng cách sử dụng biểu thức thông thường?


7

Làm thế nào tôi có thể tìm kiếm một mẫu cụ thể trong một cột?

Ví dụ: tôi muốn nhận tất cả tên người dùng bắt đầu bằng chữ A hoặc B.

(btw: cái này được gắn thẻ oracle, nhưng nó cũng có thể thú vị trong các RDBMS khác).


Có lẽ câu hỏi nên được đặt lại tiêu đề vì giải pháp không yêu cầu biểu thức chính quy. Tôi đã thêm biểu thức chính quy dưới dạng thẻ.
Leigh Riffel

Câu trả lời:


15

Câu hỏi của bạn không yêu cầu biểu thức chính quy:

WHERE name LIKE 'A%' OR name LIKE 'B%'

Đối với Oracle, có REGEXP_LIKE ; Postresql, có SIMILAR ĐẾN ; mysql có REGEXP . Một điều cần nhớ mặc dù không phải tất cả các công cụ biểu thức chính quy đều giống nhau, vì vậy chỉ vì chúng hỗ trợ các biểu thức chính quy không có nghĩa là chúng nhất thiết phải hỗ trợ các xác nhận ràng buộc từ, định lượng không tham lam hoặc xác nhận tiêu cực, v.v.


Cảm ơn. Trong trường hợp của tôi, điều đó sẽ làm. Tôi cũng tìm thấy cái này để làm việc:SELECT mname FROM names WHERE regexp_like(mname,'^[AB].*$');
Sebastian Roth

3
Tất cả những gì bạn thực sự cần là ^[AB]... .*$không cần thiết
Joe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.