对producthunt的产品进行分析
This commit is contained in:
@@ -103,7 +103,7 @@ class SQLiteViewer(QMainWindow):
|
||||
|
||||
# 筛选条件输入框
|
||||
self.filter_input = QLineEdit()
|
||||
self.filter_input.setPlaceholderText("输入筛选条件,如:name='test' 或 created_at>'2024-01-01'")
|
||||
self.filter_input.setPlaceholderText("输入筛选条件,如:<75 或 name='test' 或 created_at>'2024-01-01'")
|
||||
self.filter_input.setMinimumWidth(300)
|
||||
filter_layout.addWidget(self.filter_input)
|
||||
|
||||
@@ -330,11 +330,21 @@ class SQLiteViewer(QMainWindow):
|
||||
try:
|
||||
cursor = self.db_connection.cursor()
|
||||
|
||||
# 构建SQL查询语句
|
||||
query = f"SELECT * FROM {self.current_table} WHERE {selected_field} LIKE ?"
|
||||
# 检查是否为数值比较(支持 <, >, <=, >=, =, != 操作符)
|
||||
import re
|
||||
numeric_pattern = r'^\s*([><]=?|!=|=)\s*([\d.]+)\s*$'
|
||||
match = re.match(numeric_pattern, filter_condition)
|
||||
|
||||
# 处理筛选条件(支持模糊匹配)
|
||||
filter_value = f"%{filter_condition}%"
|
||||
if match:
|
||||
# 数值比较
|
||||
operator = match.group(1)
|
||||
value = match.group(2)
|
||||
query = f"SELECT * FROM {self.current_table} WHERE {selected_field} {operator} ?"
|
||||
filter_value = float(value)
|
||||
else:
|
||||
# 文本模糊匹配
|
||||
query = f"SELECT * FROM {self.current_table} WHERE {selected_field} LIKE ?"
|
||||
filter_value = f"%{filter_condition}%"
|
||||
|
||||
# 执行查询
|
||||
cursor.execute(query, (filter_value,))
|
||||
@@ -362,8 +372,12 @@ class SQLiteViewer(QMainWindow):
|
||||
# 启用清除筛选按钮
|
||||
self.clear_filter_button.setEnabled(True)
|
||||
|
||||
logger.info(f"应用筛选条件: {selected_field} LIKE '%{filter_condition}%', 匹配到 {len(data)} 行数据")
|
||||
self.status_bar.showMessage(f"筛选结果: {len(data)} 行数据 (条件: {selected_field} 包含 '{filter_condition}')")
|
||||
if match:
|
||||
logger.info(f"应用数值筛选条件: {selected_field} {operator} {value}, 匹配到 {len(data)} 行数据")
|
||||
self.status_bar.showMessage(f"筛选结果: {len(data)} 行数据 (条件: {selected_field} {operator} {value})")
|
||||
else:
|
||||
logger.info(f"应用文本筛选条件: {selected_field} LIKE '%{filter_condition}%', 匹配到 {len(data)} 行数据")
|
||||
self.status_bar.showMessage(f"筛选结果: {len(data)} 行数据 (条件: {selected_field} 包含 '{filter_condition}')")
|
||||
|
||||
except sqlite3.Error as e:
|
||||
logger.error(f"筛选数据失败: {e}")
|
||||
|
||||
Reference in New Issue
Block a user