php和sql的新手,所以我将尝试解释:

我在PHP中有一个SEARCH字段,我试图按与用户输入内容匹配的'ProposalName'进行搜索。

这样可以很好地打印出来:

SELECT
    rec_proposal.ProposalID,
    ProposalName,
    Status,
    researcher.FirstName,
    researcher.LastName,
    reviewer.FirstName as revFirstName,
    reviewer.LastName as revLastName,
    reviewer.UserID as revUserID,
    review.ReviewDate as revDate,
    rec_proposal.DateSubmitted
FROM rec_proposal
INNER JOIN User AS researcher
    ON rec_proposal.userid = researcher.UserID
LEFT JOIN review
    ON rec_proposal.ProposalID=review.ProposalID
LEFT JOIN User as reviewer
    ON review.UserID=reviewer.UserID


但是现在使用所有列,我需要上面的代码来做这样的事情

  SELECT * FROM rec_proposal WHERE CONCAT (ProposalName) LIKE'%test%'


因此,如果用户输入单词“ test”,您将看到ProposalName包含单词test

最佳答案

只需添加您的WHERE子句,它应该可以工作。正如scaisEdge在他们的评论中指出的那样,如果您只评估单个列,则不需要CONCAT()

SELECT
    rec_proposal.ProposalID,
    ProposalName,
    Status,
    researcher.FirstName,
    researcher.LastName,
    reviewer.FirstName as revFirstName,
    reviewer.LastName as revLastName,
    reviewer.UserID as revUserID,
    review.ReviewDate as revDate,
    rec_proposal.DateSubmitted
FROM rec_proposal
INNER JOIN User AS researcher
    ON rec_proposal.userid = researcher.UserID
LEFT JOIN review
    ON rec_proposal.ProposalID=review.ProposalID
LEFT JOIN User as reviewer
    ON review.UserID=reviewer.UserID
WHERE rec_proposal.ProposalName LIKE '%test%'

关于mysql - 搜索SQL数据库和CONCAT数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44702813/

10-12 17:38
查看更多