我最近制作了这个线程来管理数据库中的iPhone模型,以便能够通过排除最后一个单词(即容量)来选择所有不同的模型。
Select distinct first words of a field
window.onload = function() {
var video = document.getElementById('video');
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var tracker = new tracking.ObjectTracker('face');
tracker.setInitialScale(6);
tracker.setStepSize(2);
tracker.setEdgesDensity(0.1);
tracking.track('#video', tracker, { camera: true });
tracker.on('track', function(event) {
context.clearRect(0, 0, canvas.width, canvas.height);
event.data.forEach(function(rect) {
context.strokeStyle = '#ff0000';
context.strokeRect(rect.x, rect.y, rect.width, rect.height);
context.font = '11px Helvetica';
context.fillStyle = "#fff";
context.fillText('x: ' + rect.x + 'px', rect.x + rect.width + 5, rect.y + 11);
context.fillText('y: ' + rect.y + 'px', rect.x + rect.width + 5, rect.y + 22);
});
});
};
对于此表,我有以下输出:
Apple iPhone 4S
Apple iPhone 4
Apple iPhone 6 Plus
Apple iPhone 6
现在,我希望能够为每种型号获得可用容量。 我在考虑使用LIKE %%子句,
+-----------+--------------------------------+
| id | model |
+-----------+--------------------------------+
| 1 | Apple iPhone 4S 16Gb |
| 2 | Apple iPhone 4S 32Gb |
| 3 | Apple iPhone 4 8Gb |
| 4 | Apple iPhone 6 Plus 32Gb |
| 5 | Apple iPhone 6 Plus 64Gb |
| 6 | Apple iPhone 6 16Gb |
+-----------+--------------------------------+
直到出现带有'Plus'的模型才开始工作。 以iPhone 4S为例,我只需要做以下事情:
SELECT * FROM `model` WHERE `value_model` LIKE '%Apple iPhone 6S%'
我有这个输入:
Apple iPhone 4S 16Gb
Apple iPhone 4S 32Gb
但对于iPhone 6,它还会在我的搜索结果中包含iPhone 6 Plus。
我怎么能通过用'Plus'排除结果来解决这个问题,但是当我要求'Plus'模型时也不能排除这个'Plus'。
提前感谢您的帮助: - )
答案 0 :(得分:2)
嗨这是您的完美解决方案
SELECT * FROM `model`
WHERE TRIM(REPLACE(NAME,SUBSTRING_INDEX(value_model,' ',-1),'')) LIKE '%Apple iPhone 6'
答案 1 :(得分:0)
如果我理解正确:
SELECT * FROM `model` WHERE `value_model` LIKE '%Apple iPhone 6%' and `value_model` NOT LIKE '%Apple iPhone 6 Plus%'