0

我想知道是否有一种方法可以查询表以获取与字符串的部分匹配。

例如,我有一张列出药物治疗的表格,但有时一次治疗中有多种药物。这些作为 varchar 条目进入数据库,两种药物用分号分隔(如果有帮助,可以更改此格式)。

我知道我可以查询一个完整的字符串,即

Pharmacology() & 'treatment = "control"'

但是,如果我的条目是“gabazine;TPMPA”,有没有办法只查询“TPMPA”并找到所有包含“TPMPA”的字符串?

或者,我可以制作一个仅填充有多种药物的案例的零件表,然后我可以使用它来查询这些案例,但我不确定如何设置条目以便在药物数量可变时更好地查询(即有没有办法使用 python 列表在 blob 内进行查询?)

这是我的表,其中包含一些条目以防万一: 我的表

和我的表定义(部分表仅作为虚拟对象存在):

@schema
class Pharmacology(dj.Computed):
    definition = """
    # information about pharmacological treatments
    -> Presentation
    -> PharmInfo
    ---
    treatment           :varchar(255)       # string of the treatment name from hdf5 file
    control_flag        :int                # 1 if control 0 if in drug
    concentration       :varchar(255)       # drug concentration(s), "0" for controls
    multiple_drug_flag  :int                # 1 if multiple drugs, else 0
    """

    class MultipleDrugInfo(dj.Part):
        definition = """
        -> Pharmacology
        ---
        list_of_drugs     :blob           # list of drugs in multi-drug cases
4

1 回答 1

3

你可以用LIKE关键字来做到这一点

Pharmacology() & 'treatment LIKE "%TPMPA%"'

mysql中的%is通配符。

于 2022-02-03T19:30:34.373 回答