Консультация № 82383
13.04.2007, 13:28
0.00 руб.
0 4 4

Добрый день уважаемые эксперты.

Подскажите в чем проблема

Пишу запрос select * from Raschet where cod="test-test" или select * from Raschet where (cod="123-123")

Выдается ошибка Overflow occurred during data type conversion. conversion error from string "test-test".

Поле COD имеет тип VarChar

Заранее благодарен Алексеев. А.В.

Обсуждение

Неизвестный
13.04.2007, 13:44
общий
это ответ
Здравствуйте, Алексеев Александр Владимирович!
Попробуйте так:

Приложение:
Select * from Raschetwhere cod = ‘test-test‘
Неизвестный
13.04.2007, 13:44
общий
это ответ
Здравствуйте, Алексеев Александр Владимирович!

Попробуй так
select * from Raschet where cod like (‘test-test‘)
Должно пойти.
Неизвестный
13.04.2007, 14:49
общий
это ответ
Здравствуйте, Алексеев Александр Владимирович!
Это происходит из-за знака минус, который встречается в тексте запроса.
Запрос его интерпретирует как математический знак и пытается выполнить соответствующую операцию

попробуйте сделать следующее
вариант 1
условие отбора занесите в переменную

%var1 = "test-test"

сам запрос from Raschet where cod= %var1
другой вариант - использовать вместо минуса в запросе замещающий символ
что-то вроде test?test (символы замены могут быть разные в разных версиях SQL)
Неизвестный
13.04.2007, 23:26
общий
это ответ
Здравствуйте, Алексеев Александр Владимирович!
Во первых вам надо для начало в запрос ввоодить только строковые или же цифровые данные. Лучше сравнивать с перменной приведя ее к типа потем settyoe($var, ‘integer‘);
settype($var, ‘string‘); У вас е сравнение мускуль понимает,к ак арифметическое действие. если принципиально именно так, то через LIKE (‘%test-test%‘)
Форма ответа