sql >> Databasteknik >  >> RDS >> Mysql

CDbCriteria-parametrar med regex-teckenklasser

PHP kommer inte att ersätta platshållare inuti strängar, dvs inom citattecken. Som i:

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

Därför måste vi använda mysqls CONCAT() funktion för att faktiskt generera strängen för regexp, istället för att tillhandahålla strängen själva, som så:

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

ELLER binder hela det regex:

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



  1. PHP Passera användar-id till mysql trigger

  2. optimera mysql count-fråga

  3. Filtrera efter datum och tid MYSQL-formatering

  4. Infoga en enkel lista i MySQL-tabellen (php)