我们正在寻求实现一个搜索查询,该查询将对SQL中的特定列进行全文搜索。我们愿意直接在import vtk
from vtk.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
from PyQt5 import Qt
from PyQt5.QtCore import QTimer
message = "tick"
def onTimerEvent():
global message
print(message)
if message == "tick":
message = "tock"
else:
message = "tick"
app = Qt.QApplication([])
mainWindow = Qt.QMainWindow()
renderer = vtk.vtkRenderer()
vtkWidget = QVTKRenderWindowInteractor(mainWindow)
vtkWidget.GetRenderWindow().AddRenderer(renderer)
mainWindow.setCentralWidget(vtkWidget)
vtkWidget.GetRenderWindow().GetInteractor().Initialize()
#timerId = vtkWidget.CreateRepeatingTimer(100)
#vtkWidget.AddObserver("TimerEvent", onTimerEvent)
timer = QTimer()
timer.timeout.connect(onTimerEvent)
timer.start(100)
mainWindow.show()
app.exec_()
或SQL
中进行操作,如下面的TomC建议的那样。该查询将由-
C#
我们要将搜索文本转换为SQL查询,如下所示-
(A AND B) OR (C AND D)
请告知最好的处理方法。
答案 0 :(得分:1)
我不知道这是否是最好的正则表达式替换,但它可以正常工作
# Feed the file text into findall(); it returns a list of all the found strings
strings = re.findall(r'some pattern', f.read())
答案 1 :(得分:1)
在数据库方面,如果您要寻找模糊或不太精确的匹配项,我会使用CONTAINS
。如果您简化了原始帖子,我会提到这一点。与带有前导通配符的LIKE
不同,它可以使用INDEX
来加快速度。以这种方式使用LIKE
将导致表扫描。您必须创建FULLTEXT INDEX
才能使用CONTAINS
。
另一种方法是使用CHARINDEX
。这可以使用索引,但不能保证使用索引。与您的环境中的LIKE
相比,我会对此进行测试。
where
(charindex('A',col) > 0 and charindex('B',col) > 0)
or (charindex('C',col) > 0 and charindex('D',col) > 0)