Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tham số CDbCriteria với các lớp ký tự regex

PHP sẽ không thay thế trình giữ chỗ bên trong chuỗi, tức là trong dấu ngoặc kép. Như trong:

$criteria->addCondition('col = :app'); // param can be replaced
$criteria->addCondition('col = ":app"'); // param can't be replaced

Do đó, chúng tôi cần sử dụng CONCAT () để thực sự tạo chuỗi cho regexp, thay vì tự cung cấp chuỗi, như sau:

$criteria->addCondition('col regexp CONCAT("[[:<:]]", :app, "[[:>:]]")');

HOẶC, tự ràng buộc toàn bộ regex:

$criteria->addCondition('col regexp :regexp');
$criteria->params = array(':regexp'=>'[[:<:]]'.$app.'[[:>:]]');



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gọi các hàm MySQL trong Lithium

  2. Hiệu suất UUID trong MySQL?

  3. Văn bản bằng tiếng Bengali không được hiển thị trong tệp Unicode CSV

  4. Làm cách nào để MIN () và MAX () hoạt động trên chuỗi CHAR / VARCHAR trong MySQL?

  5. lỗi trong cú pháp SQL của bạn .. gần 'key'