51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
import sqlEqualityParser from "../../../utils/sql-equality-parser";
|
|
/**
|
|
* # SQL Gen Operator Gen
|
|
* @description Generates an SQL operator for node module `mysql` or `serverless-mysql`
|
|
*/
|
|
export default function sqlGenOperatorGen({ fieldName, value, equality, }) {
|
|
if (value) {
|
|
if (equality == "LIKE") {
|
|
return `LOWER(${fieldName}) LIKE LOWER('%${value}%')`;
|
|
}
|
|
else if (equality == "LIKE_RAW") {
|
|
return `LOWER(${fieldName}) LIKE LOWER('${value}')`;
|
|
}
|
|
else if (equality == "NOT LIKE") {
|
|
return `LOWER(${fieldName}) NOT LIKE LOWER('%${value}%')`;
|
|
}
|
|
else if (equality == "NOT LIKE_RAW") {
|
|
return `LOWER(${fieldName}) NOT LIKE LOWER('${value}')`;
|
|
}
|
|
else if (equality == "REGEXP") {
|
|
return `LOWER(${fieldName}) REGEXP LOWER('${value}')`;
|
|
}
|
|
else if (equality == "FULLTEXT") {
|
|
return `MATCH(${fieldName}) AGAINST('${value}' IN BOOLEAN MODE)`;
|
|
}
|
|
else if (equality == "NOT EQUAL") {
|
|
return `${fieldName} != ${value}`;
|
|
}
|
|
else if (equality) {
|
|
return `${fieldName} ${sqlEqualityParser(equality)} ${value}`;
|
|
}
|
|
else {
|
|
return `${fieldName} = ${value}`;
|
|
}
|
|
}
|
|
else {
|
|
if (equality == "IS NULL") {
|
|
return `${fieldName} IS NULL`;
|
|
}
|
|
else if (equality == "IS NOT NULL") {
|
|
return `${fieldName} IS NOT NULL`;
|
|
}
|
|
else if (equality) {
|
|
return `${fieldName} ${sqlEqualityParser(equality)} ?`;
|
|
}
|
|
else {
|
|
return `${fieldName} = ?`;
|
|
}
|
|
}
|
|
}
|