簡體   English   中英

在2列中搜索MYSQL中的字符串部分

[英]Search 2 columns for parts of string in MYSQL

我想在2列內搜索字符串的一部分。 這是一種向后搜索的方式,因此我懷疑是否可行。

我認為其中一部分與以下內容有關:

REPLACE( event_name, ' ', '') 

REPLACE( venue_name, ' ', '') 

擺脫空間。

我還認為REGEX可能會加入其中。

絕對不知道從哪里開始! PSUEDOCODE可能是:

CONCAT(
event_name = REPLACE( part of :search, ' ', '')
,
venue_name = REPLACE( part of :search, ' ', '')
)
= :search

如果我將noddybobstheatre用作搜索詞,我想在event_name列中搜索其中的一部分,而在場地名中搜索另一部分,將這兩個部分放在一起時,它們等於搜索詞。

event_name = 'noddy'
venue_name = 'bobs theatre'

就像我說的那樣,這可能是一個瘋狂的問題...

用這個,

concat(replace(event_name,' ',''),replace(venue_name,' ',''), )=:search

閱讀您需要的內容后,我認為like語句應使用該列而不是搜索值。

這是我從您的問題中所了解的內容的再現

CREATE TABLE movies
    (`word1` varchar(5), `word2` varchar(7))
;

INSERT INTO movies
    (`word1`, `word2`)
VALUES
    ('micko', 'to'),
    ('he', 'llbrane'),
    ('mick', 'oto'),
    ('hell', 'brane')
;

然后這是我使用的sql語句

select * from movies where 'mickoto' like CONCAT(Replace(word1,' ',''),'%') and 'mickoto' like CONCAT('%',Replace(word2,' ',''))  

您所要做的就是使它適應您的環境

這是小提琴執行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM