Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Parametry CDbCriteria z klasami znaków regex

PHP nie zastąpi znaków zastępczych wewnątrz łańcuchów, tj. w cudzysłowie. Jak w:

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

Dlatego musimy użyć CONCAT() funkcja do wygenerowania łańcucha dla wyrażenia regularnego, zamiast samodzielnego dostarczania łańcucha, na przykład:

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

LUB powiąż całe wyrażenie regularne:

$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. Podziel wartości oddzielone przecinkami w kolumnie MYSQL

  2. Procedura składowana, która automatycznie usuwa wiersze starsze niż 7 dni w MYSQL

  3. błąd -1054 nieznana kolumna e.id w klauzuli zamówienia

  4. błąd 1265. Dane obcięte dla kolumny podczas próby załadowania danych z pliku txt

  5. Skrypt się nie loguje