13

国のリストを保持するテーブルがあります。これらの国の 1 つが「マケドニア」であるとします

「マケドニア共和国」を検索した場合、「マケドニア」レコードを返す SQL クエリはどれですか?

linqでは次のようになると思います

var countryToSearch = "Republic of Macedonia";

var result =  from c in Countries
              where countryToSearch.Contains(c.cName) 
              select c;

では、上記のクエリに相当する SQL は何でしょうか?

逆の場合 (つまり、データベースに国名の長いバージョンが保存されている場合) は、次のクエリが機能するはずです。

Select * from country
where country.Name LIKE (*Macedonia*)

しかし、どうすれば元に戻すことができるかわかりません。

補足: 表内の国名は、常に短いバージョンの国名になります。

4

3 に答える 3

11

これに使用できますCHARINDEX

Select * from country
where CHARINDEX(country.Name, 'Republic of Macedonia') > 0
于 2012-05-11T10:56:50.047 に答える
9

演算子を逆にするだけです(そして構文を修正してください)

Select * from country
where 'Republic of Macedonia' LIKE CONCAT('%',country.Name,'%')
于 2012-05-11T10:51:52.207 に答える