var arr = [
{"id":1,"name":"admin","password":"admin","role":"Admin"},
{"id":2,"name":"user","password":"user","role":"User"},
{"id":3,"name":"superadmin","password":"superadmin","role":"superadmin"}
]
[![enter image description here][1]][1]
Loop through the array
arr.forEach(function(data) {
console.log('name', data.name);
console.log('password', data.password);
})
[1]: https://i.stack.imgur.com/uYA9i.png
Нет, если вы не используете «заказ по», вам не гарантируется какой-либо порядок. Фактически, вам не гарантируется, что порядок перехода от одного запроса к другому будет таким же. Помните, что SQL работает с данными на основе набора. Так вот, та или иная реализация базы данных может определенным образом обеспечивать упорядочивание, но вы никогда не должны полагаться на это.
Когда я делаю выбор, всегда ли гарантируется, что мой результат будет упорядочен по первичному ключу, или мне следует указать его с помощью «порядка по»?
Нет, это по далеко не гарантировано.
SELECT *
FROM table
скорее всего будет использовать СКАНИРОВАНИЕ ТАБЛИЦ
, который вообще не использует первичный ключ.
Вы можете использовать подсказку:
SELECT /*+ INDEX(pk_index_name) */
*
FROM table
, но даже в этом случае порядок не будет гарантировано: если вы используете Enterprise Edition
, запрос может быть распараллелен.
Это проблема, поскольку ORDER BY
не может использоваться в предложении SELECT
подзапрос, и вы не можете написать что-то вроде этого:
SELECT (
SELECT column
FROM table
WHERE rownum = 1
ORDER BY
other_column
)
FROM other_table
Если вы хотите, чтобы результаты отображались в определенном порядке, всегда указывайте порядок
Нет, упорядочивание никогда не гарантируется, если вы не используете ORDER BY.
Порядок извлечения строк зависит от метода доступа (например, полное сканирование таблицы, сканирование индекса), физического атрибуты таблицы, логическое расположение каждой строки в таблице и другие факторы. Все они могут измениться, даже если вы не измените свой запрос, поэтому, чтобы гарантировать согласованный порядок в наборе результатов, необходим ORDER BY.
Это зависит от вашей БД, а также от индексированных полей.
Например, в моей таблице Users у каждого пользователя есть уникальное поле varchar (20) - логин и первичный ключ - id.
И "
Если вам нужен конкретный порядок, объявите его с помощью ORDER BY.
Что делать, если у таблицы нет первичного ключа?