@Hellows

Как сделать поиск по числу в БД?

Привет.
Нужно сделать запрос на поиск по всем полям в таблице, но я столкнулся с поиском по числам. Смысл в том, чтобы при вводе числа выводились записи, где встречается это число. Подобие LIKE, но для чисел этот оператор не работает. Выбиваем ошибку, что для типа integer нельзя применить.
with DataModule2.ADOQuery1 do
    begin
        SQL.Clear;
        SQL.Add('SELECT i.*, p.name AS name_prod, f_t.name AS furn_type');
        SQL.Add('FROM items as i ');
        SQL.Add('JOIN producers as p ON i.producer_id = p.id_producer');
        SQL.Add('JOIN furniture_type as f_t ON i.furniture_type_id = f_t.id_furniture');
        SQL.Add('WHERE UPPER(i.name) LIKE upper(''%' + search.Text + '%'')' + ' OR ');
        SQL.Add('UPPER(p.name) LIKE upper(''%' + search.Text + '%'')' + ' OR ');
        SQL.Add('UPPER(f_t.name) LIKE upper(''%' + search.Text + '%'')' + ' OR ');
        Open;
    end;

Числовой тип(integer) имеют поля quantity и price
93323b31d5314693a9c6b10867cff860.png
  • Вопрос задан
  • 377 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
можешь поморочиться как-то так
можешь цены сразу держать в varchar а сравнивать больше меньше через умножить - это попроще чем конверт обратный
where (a*1)>10

но вообще - если у тебя с числами и ценами возник такой вопрос - что-то не так делаешь (без обид - по-идиотски), или не так ставишь задачу, или не так решаешь
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы