首页 > 解决方案 > 如何对包含多个单引号字符串的 Like 或 Ilike 使用参数化查询

问题描述

我正在将所有查询切换到参数化查询。但我不知道如何使用 LIKE 或 ILIKE 中的参数化查询创建查询。输入可以是多个单引号。像这个 ,

" 'ACCESS_POINT', 'DESKTOP', 'GATEWAY', 'IP_DESK_PHONE', 'IP_TV', 'IP_WEBCAM', 'LAPTOP', 'MAINFRAME', 'MINI_COMPUTER', 'OTHER', 'PRINTER', 'ROUTER', 'SCANNER', 'SERVER', 'SMARTPHONE', 'SWITCH', 'TABLET', 'THERMOSTAT', 'UNKNOWN', 'VM', 'WORKSTATION' "

标签: pythonpostgresqlpsycopg2

解决方案


可以使用正则表达式进行模式匹配。

您可以将列表转换为 RegEx - 字符串与 OR - 之间的运算符。

  • 感谢 FrankHeikens 更新
SELECT 
    *
FROM db.table
WHERE column ~ '(ACCESS_POINT|DESKTOP|GATEWAY|IP_DESK_PHONE|IP_TV|IP_WEBCAM|LAPTOP|MAINFRAME|MINI_COMPUTER|OTHER|PRINTER|ROUTER|SCANNER|SERVER|SMARTPHONE|SWITCH|TABLET|THERMOSTAT|UNKNOWN|VM|WORKSTATION)'

推荐阅读