![](/img/trans.png)
[英]SQL query to match a comma-separated string against a comma-separated string?
[英]Yii search for each term in a comma-separated query string not working as expected
我想通過在用逗號分隔的查詢字符串中搜索每個術語來完成搜索我的模型。 例如,如果字符串是"matza,red wine"
那么我想搜索匹配"matza"
和"red%20wine"
。 這是我正在使用的代碼:
$qString = $_GET['q'];
$criteria = new CDbCriteria();
$queryTerms = explode(',', $qString);
foreach ($queryTerms as $q) {
$tCriteria = new CDbCriteria();
$criteria->addSearchCondition('name', $q, true);
$criteria->addSearchCondition('text_ingredients', $q, true, 'OR');
$criteria->mergeWith($tCriteria);
}
$results = FoodItem::model()->findAll($criteria);
它運行和所有,但結果不正確。 例如,我希望搜索"A,B"
將產生與"B,A"
相同的結果,但事實並非如此。 我希望有一種方法可以記錄或echo
所得到的$criteria
某些表示。 我覺得它與我使用mergeWith
的方式mergeWith
。
請讓我知道我哪里出錯了。
tCriteria在循環結束時似乎是空的。 你沒有合並任何東西。
也許你的意思是讓兩個addSearchCondition行在tCriteria上工作,而你讓它們在標准上工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.