2017-06-22 113 views
0

新的PHP和SQL,所以我会尽量解释:搜索SQL数据库和CONCAT数据

我在PHP中的搜索领域,我试图通过“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%' 

因此,如果用户输入关键字“测试”你会的所有列请参阅ProposalName,其中包含单词test

+1

你只需要添加,其中在select语句 –

+0

条件不使用粗体和大写像在网络中尖叫 – scaisEdge

+1

为什么你concat一个单一的列.. concat fo con concateate更多然后值.. – scaisEdge

回答

0

只需添加您的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%' 
+0

WOW辉煌!非常感谢 – user1032337

+0

没有probs。 [请将此答案标记为已接受](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)如果它对您有帮助。 – roberto06