2013-09-22 41 views
0

在我的應用我要選擇所有的行,其中一個特定ID是英寸ZF2查詢與REGEXP

例如db結構

| video_id | video_title | actor_ids | 
     1   Elia  3;4;5;6 
     2   Avatar  4;8;9;23 

我想選擇每個有actor_ids = 4的行。我用我的MySQL工作臺後續查詢其工作原理確定針對這種情況

SELECT * FROM `videos` WHERE `video_actor_ids` REGEXP 4; 

我想這個查詢轉換爲一個ZF2查詢。我只需要如何將 翻譯成where子句。在文檔中找不到關於REGEXP的任何信息。

其他解決方案來做這個選擇是(更好的表現)也歡迎!

由於提前,

缺口

回答

1

當我看到類似的東西在我腦海的第一件事「3,4,5,6」不是REGEXP,但正常化。我深信你應該重新思考你處理你的關係的方式。在這種特殊情況下,它是多對多關係。幫你一個忙:儘快擺脫「3; 4; 5; 6」。

+0

因此,你建議第3張表將每個演員定位到視頻?在這種情況下,我認爲對於大型數據庫來說,它不應該是性能最好的。 – directory

+0

恰恰相反,它會很好。只要確保你已經添加了索引。 – akond

+0

我用過這個方法,一旦你已經建議,它仍然是快速的,正確的索引。我認爲我可以做得更好,就像我在這個例子中做的那樣,但現在我明白了,你是完全正確的。我改變了結構:)非常感謝 – directory