我使用的不是我自己制作的广告预订系统。对于广告表中的每一行,可以有多种尺寸。每个大小是另一个表的参考ID。没关系。

但是它是这样存储的(当我写空间时,这是一个实际的空间):

1(空间)(空间)(空间)12(空间)

1(空间)(空间)(空间)(空间)(空间)

2(空间)(空间)25(空间)1

看起来像这样:

1 12

1

2 25 1

因此,当然,当我执行这样的查询时:

$this->db->get_where('online_ads', array('submitted >=' => '1314887098', 'submitted <=' => '1317673118', 'size' => '1'));


我得到的东西都是1。我尝试了这个:

$this->db->like('size', '1')->get_where('online_ads', array('submitted >=' => '1314887098', 'submitted <=' => '1317673118'));


但这仍然不能给我准确的结果。我也尝试了FIND_IN_SET,但这仅适用于逗号。

我如何才能知道存储了1个,2个,12个等等,而没有给我任何包含1或2的东西呢?

最佳答案

我认为您必须使用更高级的模式匹配,例如regexp。我认为,如果只希望以“ 1”开头的内容,则RLIKE "^1 "之类的东西应该可以工作。

10-04 16:16