如何使用Like
运算符检索数据?
我试过这个,但收到了一个错误:
use yii\db\Query;
public function getExportData($searchVal = '')
{
$query = new Query;
if($searchVal != '') { **here i am getting error when searchVall != ''**
$query->select('*')->from('post')
->where(['like', 'title', $searchVal])
->orderBy(['added_date_time' => SORT_DESC]);
$posts = $query->createCommand()->queryAll();
} else {
$query->select('*')->from('post')->orderBy(['added_date_time' => SORT_DESC]);
$posts = $query->createCommand()->queryAll();
}
return $posts;
}
select语句有简单的方法吗?
答案 0 :(得分:13)
尝试这样的事情:
$query = Post::find();
$query->andFilterWhere(['like', 'title', $searchVal])
->orderBy(['added_date_time' => SORT_DESC])
->all();
答案 1 :(得分:1)
如果要使用变量传递查询,请使用findBySql()方法。 例如,
$query = "SELECT * FROM `post` where `title` LIKE 'foo%' ";
$result = Model::findBySql($query)->all();
希望这有助于解决您的问题。
答案 2 :(得分:1)
最佳做法是这样的:
$query = "SELECT * FROM ".YourModel::tableName()." where title LIKE :param";
$result = YourModel::findBySql($query, [':param' => $param.'%'])->all();
希望这会对某人有所帮助。
答案 3 :(得分:0)