2016-05-06 5 views
0

これは私が好きなデータ型を使っている正規表現のexampleです。例: グローバル検索で^[S,A]と入力してTreat as regexと入力すると、AまたはSで始まるすべての列が得られます。これが達成したいものです。 はUse smart searchdatatables + regex + serverside処理

そして、これをどのように動作するかわから静かではない、ここでexample

サーバー側の処理では、私が上で動作DataTableの中に正規表現を行うことができるようにfiddle

が、私はこれらを組み合わせることができ、基本的なDataTableのですサーバー側の処理?

最初に私はこのようなことを私のdbで試しましたが、データテーブルでそれをやろうとする前にここで行うことができるかどうかはわかりません。 SELECT employee_name, employee_salary, employee_age FROM employee WHERE employee_name LIKE REGEXP '^[A,S]'

+1

関連のない言葉では、正規表現を '^ [AS]'に変更したいかもしれません。あなたの現在の正規表現は '、'で始まる結果を与えるでしょう。 –

+1

'LIKE'を削除するには、' REGEXP'だけが必要です。 [4.3.4.7パターンマッチング](https://dev.mysql.com/doc/refman/5.7/en/pattern-matching.html) – Shaw

+0

@Harsh良い点を参照してください。それは正規表現の知識の欠如です。 – HattrickNZ

答えて

0
SELECT employee_name, employee_salary, employee_age FROM employee 
WHERE employee_name LIKE REGEXP '^[A,S]' 

これは、あなたが望むものを与えていないだろう、と構文エラーを取得する必要があります。 @Harsh Poddarが言ったように、それは,で始まる列にも一致するので、正規表現はちょうど'^[AS]'です。

SELECT employee_name, employee_salary, employee_age FROM employee 
WHERE employee_name LIKE '%A%' 

場合は、

SELECT employee_name, employee_salary, employee_age FROM employee 
WHERE employee_name REGEXP '^[AS]' 

これは、その後、SQLと似ていない);あなたはすべての列を照会したい場合

はとにかく、それが続くSQLで役立つAまたはSで開始しましたあなたはLIKEを使用したい、これは少なくともこのようにすべきである、

SELECT employee_name, employee_salary, employee_age FROM employee 
WHERE employee_name LIKE 'A%' or employee_name LIKE 'S%' 

さらに文字開始を希望する場合は、WHERE句にLIKE条件を追加する必要があります。REGEXPを使用すると、クエリsqlを書くのがより簡潔になるようです。
パフォーマンスについては、thisをご覧ください。

+0

最終的に私はdatatablesで作業するようにしたいですが、 'SELECT employee_name、employee_salary、employee_age従業員からです where employee_name REGEXP '^ [AS]'' SELECTと同じSELECT、employee_salary、従業員FROM従業員 WHERE employee_name LIKE ' REGEXPの方がより強力ですか? – HattrickNZ

+0

私は私の答えを更新しました、plsはそれをチェックします。 – Mippy

関連する問題