如何修改SQL语句筛选独立ATX而非mATX/Micro ATX等变体?
筛选包含独立ATX项的SQL语句修改方案
要精确匹配作为独立项的ATX,而非mATX、eATX这类带前缀的变体,可以通过以下两种方式修改SQL语句:
方法一:通用LIKE匹配法(兼容所有SQL数据库)
利用逗号分隔的特点,覆盖ATX作为单独值、开头项、中间项、结尾项的所有场景:
SELECT * FROM case_list WHERE dostupnost=1 AND ( format_dosky = 'ATX' OR format_dosky LIKE 'ATX, %' OR format_dosky LIKE '%, ATX' OR format_dosky LIKE '%, ATX, %' ) LIMIT 32;
format_dosky = 'ATX':匹配仅包含ATX的行format_dosky LIKE 'ATX, %':匹配ATX作为第一个项的行format_dosky LIKE '%, ATX':匹配ATX作为最后一个项的行format_dosky LIKE '%, ATX, %':匹配ATX作为中间项的行
方法二:正则表达式匹配法(需数据库支持正则)
如果你的数据库支持正则表达式(如MySQL、PostgreSQL、SQLite等),可以用正则直接匹配独立的ATX项:
MySQL/MariaDB版本
SELECT * FROM case_list WHERE dostupnost=1 AND format_dosky REGEXP '(^|, )ATX(, |$)' LIMIT 32;
PostgreSQL版本
SELECT * FROM case_list WHERE dostupnost=1 AND format_dosky ~ '(^|, )ATX(, |$)' LIMIT 32;
正则表达式(^|, )ATX(, |$)的含义是:匹配ATX要么在字符串开头、要么前面跟着, ;同时ATX要么在字符串结尾、要么后面跟着, ,确保它是一个独立的项。
内容的提问来源于stack exchange,提问作者k0cka
相关产品推荐
相关产品推荐

