在PostreSQL 9.6中,我有一个表contact_information
。
CREATE TABLE contact_information
(
employee_id UUID NOT NULL PRIMARY KEY,
messengers JSON NOT NULL
);
INSERT INTO contact_information
(employee_id, messengers)
VALUES
('8b5fbfec-d213-426c-86fa-4fda5f586319', '[{"Type":"skype","IDs":["some skype id","another skype id"]}]');
我需要选择ID包含子字符串的所有employee_id,例如“ id ILIKE'%other%'”。
我尝试了什么:
SELECT
ci.employee_id,
json_array_elements(json_array_elements(ci.messangers)->'IDs'::text)::text AS ids
FROM contact_information AS ci
并得到:
3ba6feba-ff81-11e4-9408-984be16afda1 "some skype id"
3ba6feba-ff81-11e4-9408-984be16afda1 "another skype id"
但是我无法在WHERE IDs ILIKE'%other%'中添加语句-列ID不存在。
如果我正在尝试
SELECT
ci.employee_id
FROM contact_information AS ci
WHERE json_array_elements(json_array_elements(ci.messangers)->'IDs'::text)::text ILIKE '%other%'
知道:错误:在WHERE中不允许使用返回设置的函数。
有解决这个问题的主意吗?
答案 0 :(得分:1)
已解决:
public boolean isPalindrome(String string)
{
if (string.length() > 2) {
if (string.charAt(0) == string.charAt(string.length() - 1)) {
return this.isPalindrome(string.substring(1, string.length() - 1));
} else {
return false;
}
} else if (string.length() == 1) {
return true;
} else {
if (string.charAt(0) == string.charAt(1)) {
return true;
} else {
return false;
}
}
}
对不起一个愚蠢的问题=(