2010-01-04 2 views
0

Хах ребята,Что не так с этим запросом mysql?

Я пробовал запрос и я не знаю, что случилось с оператором выбора, когда я выполнить это никаких записей не возвращаются ...

Кажется rollid = 3 являются вероятностным записи с rollid-не неправдоподобные,

select * from tbl_emp_personal_master where dEmp_id ='7' 


dEmp_id is int 

Я даже пытался удалить кавычки из '7' to 7 оно не поможет alt text http://img709.imageshack.us/img709/1901/mysqli.jpg

когда я отремонтировал мой стол repair table tbl_emp_personal_master он начал работать

+0

Вы уверены, что в таблице есть какие-либо записи, соответствующие критериям? –

+0

@David ya есть записи, когда я дал dEmp_name, он получает соответствующую запись – Saranya

+0

, можете ли вы показать данные в своей таблице – junmats

ответ

1

Тогда в вашем 'tbl_emp_personal_master' нет dEmp_id со значением '7'.

select dEmp_id from tbl_emp_personal_master запрос должен сообщить вам, есть ли у вас значение 7 в перечисленных значениях в наборе результатов. Проверьте!

+0

Правильный ответ !? –

1

Удалите цитаты из 7.

+0

@ Это не помогло – Saranya

+1

Это единственное, что «неправильно» с этим утверждением. –

+0

Возможно, вы захотите «выбрать * из tbl», чтобы убедиться, что идентификатор 7 действительно существует ... –

1

7 вместо «7». Вы пытаетесь сопоставить int-поле с символом.

+0

@Deep это не помогло – Saranya

3

Другие ответы предполагающие:

select * from tbl_emp_personal_master where dEmp_id = 7 

должны работать. Если это не так, это означает, что строка не существует в вашей базе данных. Попробуйте:

select * from tbl_emp_personal_master where dEmp_id < 1000 

и посмотрите, вернет ли он какие-либо результаты.

+0

Я попробовал второй, с которым работал, я не знаю, что это очень странно, что это занимает до 6 empids, но не 7 – Saranya

+0

@ Сарния, вы говорите, что версия «<1000» показала вам номер сотрудника 7? – paxdiablo

+0

ya paxdiablo, но я не получал записи, когда я даю = символ – Saranya

3

Давайте попробуем немного отладки. Вы говорите, что

select * from tbl_emp_personal_master where dEmp_id = '7' 

не работает, не делает:

select * from tbl_emp_personal_master where dEmp_id = 7 

Тогда вы должны изолировать, что делает работу. Попробуйте каждый из следующих действий:

select * from tbl_emp_personal_master where dEmp_id < 10 order by dEmp_id desc 
select * from tbl_emp_personal_master where dEmp_id < 100 order by dEmp_id desc 
select * from tbl_emp_personal_master where dEmp_id < 1000 order by dEmp_id desc 

пока вы не получите какой-то выход, а затем посмотреть на последние несколько строк каждый, где вы должны найти номер сотрудника 7.

Если его нет, то вы есть нет такого сотрудника, и это ваша проблема. Если это есть, нам понадобится еще несколько исследований, так как ваш цельный выбор из 7 должен работать нормально в этом случае.


Update: Хорошо, только 14 записей в таблице, показывают нам выход из:

select * from tbl_emp_personal_master order by dEmp_id 

, и мы должны быть в состоянии помочь там.

+0

@paxdiablo моя таблица содержит 14 записей, я могу получить записи до 6-го, но с 7-го icant получить, когда я даю условия где – Saranya

+0

См. Обновление , Стол крошечный, поэтому, если вы покажете нам все, вам будет легче определить проблему. – paxdiablo

+0

@paxdiablo смотреть снимок экрана – Saranya

0

Мое предположение, действительно, нет записи, в которой поле dEmp_id установлено равным 7.

select * from tml_emp_personal_master where dEmp_id between 6 and 8 

должно разрешить это проверить.

Что касается корпуса поля, это зависит от вашей СУБД. Включение числовых значений в MySQL является совершенно законным и даже recommended (cf глава о SQL-инъекциях и числовых значениях).

Что касается того, что неправильно, как правило, рекомендуется не использовать SELECT *, но перечислить все необходимые поля для выполнения целей и читаемости.

Кроме того, если запрос выполняется на языке программирования, настоятельно рекомендуется использовать параметризованные запросы, если они доступны (например, DBParameter в .Net, PDO в PHP и т. Д.).

1

Я решил это, отремонтировав свой стол repair table tbl_emp_personal_master. Мой запрос был выполнен. Спасибо за ваше терпение.

+0

Вы можете принять свой ** ответ **, чтобы другие могли получить выгоду. –

Смежные вопросы