Ecto 不允许 mysql 全文搜索的片段参数
Ecto not allowing fragment parameter for mysql fulltext search
我正在尝试使用一个片段在 ecto 中实现全文搜索。但是,它抛出一个错误,它不允许我使用搜索词的参数。
parameters must be of length 1 for query %Mariaex.Query
ZB.Repo.all(
from contact in ZB.Contact,
where: contact.account_id == ^account_id,
where: fragment("MATCH (name,email,phone,address_1,city,state,postal_code) AGAINST ('?*' IN BOOLEAN MODE)", ^search_term)
)
?
in fragment
不是纯字符串替换。您需要将 *
附加到片段 SQL 之外,而片段 SQL 应该只有 (? IN BOOLEAN MODE)
.
变化:
fragment("... AGAINST ('?*' IN BOOLEAN MODE)", ^search_term)
收件人:
fragment("... AGAINST (? IN BOOLEAN MODE)", ^(search_term <> "*"))
我正在尝试使用一个片段在 ecto 中实现全文搜索。但是,它抛出一个错误,它不允许我使用搜索词的参数。
parameters must be of length 1 for query %Mariaex.Query
ZB.Repo.all(
from contact in ZB.Contact,
where: contact.account_id == ^account_id,
where: fragment("MATCH (name,email,phone,address_1,city,state,postal_code) AGAINST ('?*' IN BOOLEAN MODE)", ^search_term)
)
?
in fragment
不是纯字符串替换。您需要将 *
附加到片段 SQL 之外,而片段 SQL 应该只有 (? IN BOOLEAN MODE)
.
变化:
fragment("... AGAINST ('?*' IN BOOLEAN MODE)", ^search_term)
收件人:
fragment("... AGAINST (? IN BOOLEAN MODE)", ^(search_term <> "*"))