【发布时间】:2019-11-20 09:47:37
【问题描述】:
我是 Sequelize 的新手,经过大量挖掘后,我找不到同时使用 LOWER 和 LIKE 编写查询的方法。
我想写这样的东西:
SELECT *
FROM acessories
WHERE LOWER(name) LIKE '%xyz%'
OR LOWER(description) LIKE '%xyz%'
ORDER BY name
我是这样写代码的,但是不能使用LOWER函数:
const getAcessories = await Acessories.findAndCountAll({
limit,
offset: start,
order: [["name", "ASC"]],
where: {
[Sequelize.Op.or]: [
{
name: {
[Sequelize.Op.like]: `%${search}%`
},
description: {
[Sequelize.Op.like]: `%${search}%`
}
}
]
}
});
编辑:创建表命令:
从 atm_usuarios 中选择 *;
CREATE TABLE `acessories` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`store` int(11) NOT NULL,
`in_value` decimal(10,2) NOT NULL,
`out_value` decimal(10,2) NOT NULL,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`description` varchar(500) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime DEFAULT NULL,
`deleted_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 collate=utf8_general_ci ROW_FORMAT=DYNAMIC;
有什么帮助吗?
【问题讨论】:
-
<snide-remark>注意 SQL 比它的 3rd 方表示更简洁?</snide-remark>
标签: node.js mariadb sequelize.js