Невозможно получить точный результат из-за странного способа, которым кто-то вводил данные (1 12 13) - PullRequest
0 голосов
/ 09 января 2012

Я работаю с системой бронирования рекламы, а не созданной мной. Для каждой строки в таблице объявлений может быть несколько размеров. Каждый размер является идентификатором ссылки на другую таблицу. Это нормально.

Но он хранится так (когда я пишу пробел, это фактический пробел):

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?

1 Ответ

1 голос
/ 09 января 2012

Я думаю, вам придется использовать более продвинутое сопоставление с образцом, например regexp . Если вам нужны только вещи, начинающиеся с «1», то, как мне кажется, должно работать что-то вроде RLIKE "^1 ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...