2012-02-25 14 views
-4

ユーザー検索入力はUNIXです。テーブルから有効なレコードを見つける必要があります。私はLIKE % %を使用しかし、それは他の多くのランダムなレコードに正しくない非常にランダムなレコードから、事前定義されたルールで名前を見つけるにはどうすればよいですか?

abnormalURL field    | Unique-Company 
----------------------------------------------- 
www.PDP11UNIX.com    | company1 
PDP9UNIXPDP11.co.uk   | company2 
.UNIXPDP11.be     | company3 
git://UNIXPDP11.com   | company4 
http://PDP11UNIX    | company5 
ssh://UNIXPDP11    | company6 
www.UNIXPDP11.1234.-.0.9.8.be | company7 

Grand father telling story, | company8 
    once upon a time there was 
    a UNIX getting born.  

UNIXPDPV11.a.hosted.com  | company9 
www.UNIX.org     | company10 
b.UNIX.x.org     | company11 
http://UNIX.be    | company12 
http://www.UNIX.com   | company13 
UNIX.nl      | company14 
UNIX.a.org     | company15 
UNIX.b.org     | company55 
http://www.UNIX.PDP11.org/ | company16 
http://www.PDP11.UNIX.org/ | company17 

:以下のようなランダムなリストを持っている

。また、正しい出力ではないLIKE 'UNIX%'を試しました。

* 私の予想される出力は次のように表示する必要があり、その上のリストから、2:*

www.UNIX.org     | company10 
http://UNIX.be    | company12 
http://www.UNIX.com   | company13 
UNIX.nl      | company14 

検索はUNIX.aが、それは次のように表示されますされた場合(のみ) :

UNIX.a.org     | company15 

どのようにSQL/Cで行うことができますか?

+5

なぜそれらの行だけがキーワード 'UNIX'と一致するのか説明する必要があります。なぜ、 'UNIX.a.org'は一致しないのですか? –

+0

@ジムガリソン:UNIX.a = 5または別の会社のx番号。私の場合はUnix.org = 1、UNIX.be = 2、UNIX.com = 3、UNIX.nl = 4です。 – YumYumYum

+3

あなたの説明から一言も出てこなかった。 –

答えて

2

OK。これは非常に野生の推測です。これらのいずれかで

http://UNIX 
http://www.UNIX 
www.UNIX 

か、単に

UNIX 

と終了:私は、ユーザ入力「UNIX」、あなたはこれらのいずれかで始まるすべてのエントリをしたいときと仮定

UNIX.com 
UNIX.org 
UNIX.be 
UNIX.nl 

私の推測が正しい場合、このようなものが動作するかもしれません(MySQLで):

SELECT t.* 
FROM 
     (SELECT 'http://' AS prefix UNION ALL 
     SELECT 'http://www.' UNION ALL 
     SELECT 'www.' UNION ALL 
     SELECT 'ftp://' UNION ALL 
     SELECT '' 
    ) pre 
    CROSS JOIN 
     (SELECT '.com' AS suffix UNION ALL 
     SELECT '.org' UNION ALL 
     SELECT '.nl' UNION ALL 
     SELECT '.be' UNION ALL 
     SELECT '.gr' 
    ) s 
    JOIN 
     TableX t 
    ON t.abnormalURL = CONCAT(p.prefix, @userInput, s.suffix) 
関連する問題