Сообщение подскажите по "хитрому" запросу от 21.02.2018 13:14
Изменено 21.02.2018 13:17 niXman
подскажите по "хитрому" запросу
привет!
пытаюсь сделать такой запрос, который: 1)выполняет проверку на существование, 2)если не существует — вставляет, 3)если существует — селектит
по первым двум: в первом случае должен возвращать 0, иначе — 1
особо интересно, как это сделать одним запросом к БД при условии то, что проверяем/вставляем — могут быть более одного поля.
к примеру, имеем такие строки:
запрос должен(в псевдокоде):
старался объяснить как мог...
пытаюсь сделать такой запрос, который: 1)выполняет проверку на существование, 2)если не существует — вставляет, 3)если существует — селектит
по первым двум: в первом случае должен возвращать 0, иначе — 1
особо интересно, как это сделать одним запросом к БД при условии то, что проверяем/вставляем — могут быть более одного поля.
к примеру, имеем такие строки:
string a
string b
string c
запрос должен(в псевдокоде):
func = (string h, int id) {
if h exists {
return (true, select id);
} else {
insert (h, id);
return (false, id);
}
}
struct {
pair(bool, int) res_a;
pair(bool, int) res_b;
pair(bool, int) res_c;
} res = {
func('rohgreiuehgreigheih', 33),
func('srdkrughrewiugheiue', 33),
func('yuiruywrtbrqynbgngb', 33)
};
старался объяснить как мог...
подскажите по "хитрому" запросу
привет!
пытаюсь сделать такой запрос, который: 1)выполняет проверку на существование, 2)если не существует — вставляет, 3)если существует — селектит
по первым двум: в первом случае должен возвращать 0, иначе — 1
особо интересно, как это сделать одним запросом к БД при условии что то, что проверяем/вставляем — могут быть более одного поля.
к примеру, имеем такие строки:
запрос должен(в псевдокоде):
старался объяснить как мог...
пытаюсь сделать такой запрос, который: 1)выполняет проверку на существование, 2)если не существует — вставляет, 3)если существует — селектит
по первым двум: в первом случае должен возвращать 0, иначе — 1
особо интересно, как это сделать одним запросом к БД при условии что то, что проверяем/вставляем — могут быть более одного поля.
к примеру, имеем такие строки:
string a
string b
string c
запрос должен(в псевдокоде):
func = (string h, int id) {
if h exists {
return (true, select id);
} else {
insert (h, id);
return (false, id);
}
}
struct {
pair(bool, int) res_a;
pair(bool, int) res_b;
pair(bool, int) res_c;
} res = {
func('rohgreiuehgreigheih', 33),
func('srdkrughrewiugheiue', 33),
func('yuiruywrtbrqynbgngb', 33)
};
старался объяснить как мог...