0

假设我有这样的表中的数据

ID     student_name     score
1      ABC              1,3
2      DEF              11,2
3      GHI              5,2,13

score : 是字符串

这是我尝试过的

$query->andFilterWhere(['like', 'score', $this->score]);

我想要做的是当我通过“分数”搜索“1”时,它应该只返回第一条记录,但它会返回所有记录。当我搜索“2”时,它应该返回 2 行(2 和 3)

请帮忙!!!

4

1 回答 1

1
  1. 更改您的逻辑,以便在保存分数时保存为 ,1,3,(注意开头和结尾的逗号)

  2. 最后用逗号更新分数字段,因此更新查询看起来像 Update table set score = concat(',', score, ',')

  3. $query->andFilterWhere(['like', 'score', ',' . $this->score . ',']);

于 2015-12-10T16:02:36.293 回答