Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 3b0305f

Browse files
rename _MATH_OPERATORS property and improve select() method
1 parent 5d3d6c2 commit 3b0305f

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

‎simple_query_builder/querybuilder.py‎

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,21 @@ class QueryBuilder:
1919
">=",
2020
"<=",
2121
"!=",
22+
"<>",
2223
"LIKE",
2324
"NOT LIKE",
2425
"IN",
2526
"NOT IN",
2627
]
27-
_MATH_OPERATORS: list = [
28+
_FIELD_SPEC_CHARS: list = [
2829
"+",
2930
"-",
3031
"*",
3132
"/",
3233
"%",
3334
"(",
3435
")",
36+
"||",
3537
]
3638
_LOGICS: list = [
3739
"AND",
@@ -348,7 +350,11 @@ def select(self, table: Union[str, dict], fields: Union[str, list, dict] = "*"):
348350
return self
349351

350352
if isinstance(table, dict) or isinstance(table, str):
351-
self._sql += f" FROM {self._prepare_aliases(table)}"
353+
if isinstance(table, str) and any(x in table for x in self._FIELD_SPEC_CHARS) and fields == '*':
354+
self._sql = f"SELECT {table}"
355+
self._fields = table
356+
else:
357+
self._sql += f" FROM {self._prepare_aliases(table)}"
352358
else:
353359
self.set_error(f"Incorrect type of table in {inspect.stack()[0][3]} method. Table must be String or Dictionary")
354360
return self
@@ -457,7 +463,7 @@ def _prepare_field(self, field: str = "") -> str:
457463
self.set_error(f"Empty field in {inspect.stack()[0][3]} method")
458464
return ""
459465

460-
if any(x in field for x in self._MATH_OPERATORS):
466+
if any(x in field for x in self._FIELD_SPEC_CHARS):
461467
if field.find(" AS ") > -1:
462468
field = field.replace(" AS ", " AS `")
463469
return f"{field}`"

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /