Сравнение строк в базе данных

Главные вкладки

Аватар пользователя Bars888 Bars888 13 сентября 2012 в 13:39

Возникла проблема. запрос в базу данных неправильно сравнивает значения . поле price первоначально было указано как строка(string). а нам нужно его сравнить с числом (int) вот запрос

$price = db_select('field_data_field_price', 'p')
                                ->fields('p',array('entity_id'))
                                ->condition('bundle','flat','=')
                                ->condition('field_price_value',(int)$price_min,'>=')
                                ->condition('field_price_value',(int)$price_max,'<=')
                                ->execute()
                                ->fetchAll();

в результате 2000 > 10000 / как можно указать что нужно сравнивать как строки как числа ?

Комментарии

Аватар пользователя Koreychenko Koreychenko 13 сентября 2012 в 15:57

Для создания полей цен нужно использовать поле number, иначе сортировка не будет работать нигде. Модуль Views с этого тоже дуреет. Переделать поле пока не поздно - единственный вариант. Можете создать новое поле и скопировать данные из старого с помощью SQL запроса.