1

我想知道是否有人可以帮助我。我知道我做错了什么并且过于复杂,但我不确定是什么。

当有人使用 Autism、ASD、Aspergers 等词来回答问题时,我想从问题 205,227 和 278 中挑选出文本。

发生的事情是我只得到单个单词短语,而不是当有人在字符串中写单词时,例如“我有自闭症”不会出现在输出中。只有当有人写自闭症。我注意到它也区分大小写,我想知道是否可以对其进行编码,这样我就不必在大小写的每种组合中写下所有单词。

我需要的主要内容是特定问题(question.id),并且能够在这些问题的响应中搜索特定单词和短语的出现(texter_survey_response_value.value)。

    select 
    texter_survey_response.response_id, question_id, conversation_id, 
    texter_survey_response_value.value as scrubbed_feedback
    from
    texter_survey_response
    join texter_survey_response_value on texter_survey_response.response_id = 
    texter_survey_response_value.response_id
    where
    texter_survey_response_value.question_id IN (205, 227, 278)
    and texter_survey_response_value.value = 'Autism'
    or texter_survey_response_value.value = 'ASD'
    or texter_survey_response_value.value = 'Autistic'
    or texter_survey_response_value.value = 'Aspergers'
    or texter_survey_response_value.value = 'Autism Spectrum'
    or texter_survey_response_value.value = 'Autistic Spectrum Disorder'
    or texter_survey_response_value.value = 'Autistic Spectrum'
    or texter_survey_response_value.value = 'Autism Spectrum Disorder'
    and texter_survey_response_value.value is not null
4

1 回答 1

1

如果您使用=,它只会搜索完全匹配。like您可以通过添加%到搜索短语的两侧来实现包含搜索。like您可以通过仅使用大写或小写来解决大多数实现的区分大小写的特性。

select 
  texter_survey_response.response_id, question_id, conversation_id, 
  texter_survey_response_value.value as scrubbed_feedback
from
  texter_survey_response join texter_survey_response_value
    on texter_survey_response.response_id = texter_survey_response_value.response_id
where
  texter_survey_response_value.question_id IN (205, 227, 278)
  and texter_survey_response_value.value is not null
  and (
    UPPER(texter_survey_response_value.value) like '%AUTISM%' or
    UPPER(texter_survey_response_value.value) like '%AUTISTIC%' or
    UPPER(texter_survey_response_value.value) like '%ASPERGERS%' or
    UPPER(texter_survey_response_value.value) like '%ASD%');

您没有编写您使用的数据库,因此您可能必须调用与UPPER.

希望这可以帮助 :)

于 2020-01-16T14:33:19.343 回答