2013-02-23 4 views
0
I have a table like this 

id username  sb 
1  user1_0001  1 
2  user1_0002  1 
3  user1_0003  1 
4  user2_0001  2 
5  user2_0002  2 
6  user2_0003  2 
7  user3_0001  3 
8  user3_0002  3 
9  user3_0003  3 
10 user3_0004  3 

Как я могу запросить, например, я хочу получить последнюю запись sb = 1, выход должен быть user1_0003?Получение последней записи с предложением Where в Codeigniter

+0

В реляционной базе данных, строка представляет собой единое целое. Таким образом, порядок строк не имеет значения. Таким образом, выбор последней строки sb = 1 не делает никакой логики. Если бы вы могли упомянуть о своей цели сделать это, кто-то мог бы помочь. Кстати, если вам нужно получить запись sb = 1 с максимальным значением id, это будет иметь смысл. – chandimak

+0

На самом деле это то, о чем я прошу. Я хочу получить последнюю запись, где sb = 1. Который будет выводиться user1_0003, потому что это последняя запись sb = 1. – user2046410

ответ

2

Предполагая, что имя вашей таблицы «table1». Во внутреннем запросе он возвращает максимальное значение id для sb = 1, а затем во внешнем запросе мы выбираем возвращаемое значение записи.

SELECT * FROM table1 WHERE id = (SELECT MAX(id) FROM table1 WHERE sb = 1); 
+0

Большое вам спасибо. Я попробовал, но он выводит мою последнюю запись. Его вроде не читает предложение WHERE – user2046410

+0

Нет, он вернет ожидаемый результат правильно. Повторите запрос. Обратитесь к этому [link] (http://sqlfiddle.com/#!2/98e31/1) за результат в скрипке. – chandimak

+0

Большое спасибо. Он работает – user2046410

0

Поскольку я работаю в Codeigniter.

Это мое решение, благодаря chandimark

$query = $this->db->query("SELECT * FROM user WHERE id = (SELECT MAX(id) FROM user WHERE sb = '".$sb_id."')"); 
if ($query->num_rows()== 1) 
{ 
    $row = $query->row(); 
    echo $row->username; 
} 
+0

Хотя ваш фреймворк является codeignitor, вопрос может быть обобщен на 'mysql', как вы отметили. Таким образом, принятие этого ответа может ввести в заблуждение следующих пользователей. – chandimak

+0

просто потому, что я не могу добавить тег Codeigniter, потому что я только начинаю использовать Stackoverflow и не разрешено помечать Codeginiter – user2046410

+0

Ваш вопрос основан на 'mysql'. Итак, вы отметили его правильно. Чтобы ответить на этот вопрос, кто-то не должен обладать никакими знаниями Codeignitor. Таким образом, вам не нужно отмечать его Codeignitor. На самом деле вопрос был бы: _Введите последнюю запись с помощью Where clause_ – chandimak

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