Выполнение запроса «Select * From tableName» с использованием MySQL / OTP без «WHERE» - PullRequest
0 голосов
/ 13 декабря 2018

Этот драйвер позволяет вам вызывать базу данных mysql в программе Erlang.

Они предоставляют пример для «множественных запросов и множественных результатов»

{ok, [{[<<"foo">>], [[42]]}, {[<<"bar">>], [[<<"baz">>]]}]} =
    mysql:query(Pid, "SELECT 42 AS foo; SELECT 'baz' AS bar;"),

Но на самом деле не объясняйте это, или покажите, как его использовать без AS


Я хотел бы выполнить запрос, подобный

{ok, [{[<<Latitude>>, [Longitude], [Image], [Username], [Bio]} = mysql:query(Db, "SELECT * FROM users",[])

Это мой обычный select * from users

mysql> select * from users;

+----------+-----------+-------+----------+-----------+
| latitude | longitude | image | username | bio       |
+----------+-----------+-------+----------+-----------+
| 44       | 44        |    45 | Sally    | Hello     |
| 42       | 43        |     0 | Bryce    | I'm me    |
| 20       | 24        |     0 | Richard  | I'm Great |
| 44       | 45        |     0 | Liz      | Yeah      |
+----------+-----------+-------+----------+-----------+

Поэтому я бы хотел, чтобы первый столбец сохранялся в переменной Latitude, а второй столбец - в Longitude .....

1 Ответ

0 голосов
/ 13 декабря 2018

Из примера библиотеки:

%% Select
{ok, ColumnNames, Rows} =
    mysql:query(Pid, <<"SELECT * FROM mytable WHERE id = ?">>, [1]),

Вы должны быть в состоянии сделать это с помощью следующего запроса, используя только 2 параметра при вызове функции запроса :

{ok, [<<"latitude">>, <<"longitude">>, <<"image">>, <<"username">>, <<"bio">>], Rows} 
    = mysql:query(Pid, <<"SELECT * FROM users">>),

Где Rows будет выглядеть следующим образом (на основе размещенной вами таблицы):

[ 
    [44, 44, 45,<<"Sally">>, <<"Hello">>],
    [42, 43, 0,<<"Bryce">>, <<"I'm me">>],
    [20, 24, 0,<<"Richard">>, <<"Hello">>],
    [44, 45, 0,<<"Liz">>, <<"Yeah">>]
]

Каждый элемент списка в приведенной выше структуре представляет собой строку из таблицы БД, значения полей в которой совпадают.заказ, как ваш запрос будет запрашивать его (как вы можете видеть из списка ColumnNames).Вы можете использовать этот список, чтобы преобразовать его в любую другую структуру, которая вам может понадобиться.

...